我在我的表中插入一条记录。它成功是因为 .insert() 返回了新的行 id,我使用该 id 来查询 where cause _id = id。它成功了,我得到了 ROW RETURN
但是当我用 SELECT * FROM TABLE (no where cause) 查询时,它返回空游标!
请帮我解决这个问题
这是插入方法
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;
}
这是我用来查询 where cause 的方法
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;
}
谢谢大家的帮助