Cursor c = db.rawQuery("SELECT * FROM table WHERE id=?", new String[]{id});
if (c == null) { // 錯誤:Cursor 永不為 null,無結果時 getCount()==0
// 插入
}
Cursor c = db.rawQuery("SELECT * FROM " + TABLE + " WHERE " + COL_ID + "=?", new String[]{id});
boolean exists = (c.getCount() > 0);
c.close(); // 及時關閉
if (exists) {
Toast.makeText(this, "已存在", Toast.LENGTH_SHORT).show();
} else {
// 插入邏輯
}
Cursor c = db.rawQuery("SELECT EXISTS(SELECT 1 FROM " + TABLE + " WHERE " + COL_ID + "=?)", new String[]{id});
boolean exists = false;
if (c.moveToFirst()) {
exists = (c.getInt(0) == 1);
}
c.close();
只返回 0/1,無需加載完整行數據,性能更好。