テーブルにレコードを挿入します。.insert() が新しい行 ID を返し、その ID を使用してクエリを実行したため、成功しました。IT 成功、行が返されました
しかし、SELECT * FROM TABLE (どこにも原因がない) でクエリを実行すると、空のカーソルが返されます!
この問題を解決するのを手伝ってください
挿入方法はこちら
public String insertCategory(String name, int color) {
SQLiteDatabase db = getWritableDatabase();
ContentValues cv = new ContentValues();
cv.put(COLUMN_NAME, name);
cv.put(COLUMN_COLOR, color);
long id;
try {
id = db.insertOrThrow(TABLE_CATEGORIES, null, cv);
} catch (Exception e) {
return null;
}
Cursor row = getRowById(db, TABLE_CATEGORIES, id, new String[] {
COLUMN_ID, COLUMN_NAME });
if (row.getCount() > 0) {
if (row.moveToNext()) {
return row.getString(row.getColumnIndex(COLUMN_NAME));
} else
return null;
} else
return null;
}
これは、原因を照会するために使用する方法です
private Cursor getRowById(SQLiteDatabase db, String table, long id,
String[] columns) {
Cursor cursor = db.query(table, columns, COLUMN_ID + " = ?",
new String[] { "" + id }, null, null, null);
return cursor;
}
最後に、すべての行のクエリに使用する方法を次に示します
public Cursor getAllCategories() {
SQLiteDatabase db = getWritableDatabase();
Cursor cursor = db.query(TABLE_CATEGORIES, null, null, null, null,
null, null);
db.close();
return cursor;
}
助けてくれてありがとう