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()を実行すると、gBirth0になります。 result 結果がリンクに表示されます。 birth_yearに何も書き込まないinsert()を実行すると例外がスローされます。 どうすれば修正できますか?Android:データベースgetInt()

+0

あなたのログインを追加 –

答えて

0

execSQLは、SQL文字列が無効な場合にのみ例外をスローします。 insertに変更し、-1を返す場合は、ご自身の例外をスローするか、そのまま使用してください。insertOrThrow

関連する問題