2016-08-27 20 views
0

私は列(COLUMN_ID、COLUMN_TARGET、COLUMN_CURRENT)を持つテーブルを持つデータベースを持っています。私はCOLUMN_ID = 1の列COLUMN_TARGETの値を取得しようとしていると変数tarに保存し、それを返すが、私のアプリは実行時にクラッシュし続けます。私は間違ったところで作業するためにログメッセージを使い、 "1 ..."を印刷してクラッシュしました。android sqliteはデータベースから値を取得しますか?

public int getTarget() { 

    SQLiteDatabase db = this.getReadableDatabase(); 
    String[] columns = {COLUMN_TARGET}; 
    int tar=0; 
    Log.d("tag","1...\n"); 
    Cursor c = db.query(TABLE_VALUES, columns, COLUMN_ID+"=?", new String[] { String.valueOf(1) }, null, null, null,null); 
    Log.d("tag","2...\n"); 
    if (c.getCount() == 1) { 
     Log.d("tag","3...\n"); 
     c.moveToFirst(); 
    } 
    Log.d("tag","4...\n"); 
     tar = c.getInt(0); 
    Log.d("tag","5...\n"); 
    db.close(); 
    c.close(); 
    Log.d("tag","6...\n"); 
    // return Integer.parseInt(tar); 
    return tar; 

} 

誰かが私のためにこれを修正できますか?事前のおかげで

答えて

0

以下試してみてください。

String SELECT_SQL = "SELECT * FROM "+ TABLE_VALUES + "WHERE COLUMN_ID =" + 1 + ";"; 
    Cursor c = db.rawQuery(SELECT_SQL, null); 
    if (c.getCount() == 1) { 
     Log.d("tag","3...\n"); 
     c.moveToFirst(); 
     int tar = c.getInt(0); 
    } 
関連する問題