データベースが空でない場合でも、カーソルは常にnullを返します。どうして?それを解決する方法は?ありがとうございました。Android:データベースが空でなくても、カーソルは常にnullを返す
public StatParcours getOneUserInfo(int id) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_USER, new String[] { KEY_USER_ID,
KEY_STUDN , KEY_STUDBD, KEY_TEACHN, KEY_TEACHBD}, KEY_USER_ID + "=?",
new String[] { String.valueOf(id) }, null, null, null, null);
StatParcours stat = null;
if ((cursor!= null)&&(cursor.moveToFirst())){
stat = new StatParcours(
Integer.parseInt(cursor.getString(0)),
cursor.getString(1),
cursor.getString(2),
cursor.getString(3),
cursor.getString(4));
}
return stat ;
}
カーソルがヌルになっていませんか?おそらくそれはちょうど行がありません?作成しているクエリで少なくとも1つの結果が返されることを確認しましたか? – Karakuri
はい、ログを使用してデータベースの内容をチェックしましたが、このメソッドを呼び出すとStatの値が表示され、魔法使いは常にnullです。カーソルが常にnullであることを理解しました。 – user2613911
'Log.d(" Foo "、" Cursor is: "+ cursor);'それは 'Cursor is:null'を出力しますか?それが 'null'を出力しなければ、カーソルは空です。空の場合、条件に一致する要素が0件見つかりました。クエリが間違っているかどうかを確認する必要があります。 – zapl