2016-11-15 3 views
0
public void insert(View target){ 
    String mBirth = birth_year.getText().toString(); 
    String mName = name.getText().toString(); 
    String mHome = hometown.getText().toString(); 
    Toast.makeText(getApplicationContext(), mBirth+mName+mHome , 
      Toast.LENGTH_SHORT).show(); 
    db.execSQL("INSERT INTO member VALUES (null, '"+ mBirth + "', '" 
      + mName + "', '" + mHome + "');"); 
    Toast.makeText(getApplicationContext(), "saved.", 
      Toast.LENGTH_SHORT).show(); 
    birth_year.setText(""); 
    name.setText(""); 
    hometown.setText(""); 
} 

public void search(View target){ 
    Cursor cursor; 
    cursor = db.rawQuery("SELECT b_year, b_name, b_city FROM member;",null); 
    String mBirth="Year\n", mName="Name\n", mHome="City\n"; 
    while(cursor.moveToNext()){ 
     int gBirth = cursor.getInt(0); 
     String gName = cursor.getString(1); 
     String gHome = cursor.getString(2); 
     mBirth += (Integer.toString(gBirth)+'\n'); 
     mName += (gName+'\n'); 
     mHome += (gHome+'\n'); 
    } 
    btext.setText(mBirth); 
    ntext.setText(mName); 
    htext .setText(mHome); 
    Toast.makeText(getApplicationContext(), mBirth+mName+mHome , 
      Toast.LENGTH_SHORT).show(); 
} 

У меня проблема с тем, что база данных не работает, как я ожидал. Когда я выполняю insert(), ничего не пишет на birth_year, что такое Edit_Text, я ожидаю, что db.execSQL() выкинет SQLiteException. Но исключение не выбрасывается, и когда я выполняю search(), gBirth - 0. result Результаты показаны по ссылке. Я хочу передать исключение, когда я выполняю insert(), который ничего не пишет на birth_year. Как я могу это исправить?Android: база данных getInt()

+0

Добавить свой логарифм –

ответ

0

execSQL вызывает только исключение, если строка SQL недействительна. Измените его на insert, и если он вернется -1, сделайте собственное исключение или просто используйте insertOrThrow

Смежные вопросы