我正在開發一個應用程序,用戶輸入標題和日期。我想防止同一天輸入的重複標題進入數據庫。我正在檢查標題是否存在於選定的日期。然而,我的查詢似乎不工作,我不知道爲什麼,應用程序只是崩潰。這個查詢是否正確?有人可以幫忙嗎?Android SqlLite檢查兩個不同列中是否存在兩個值
public boolean checkExist(String title, String date) {
SQLiteDatabase db = this.getWritableDatabase();
Cursor c = db.rawQuery("SELECT * FROM "+TABLE_NAME+" WHERE "+TITLE+"=?" +"AND" + DATE+"=?", new String[] {title,date});
boolean exists = c.moveToFirst();
c.close();
return exists;
}
它不起作用,怎麼樣?它失敗或者遊標沒有返回任何數據(即checkExist總是返回false)?如果失敗,則包括日誌。如果它返回的是數據,那麼我建議在'boolean exists = c.moveToFirst();'處放一個斷點,然後從調試器看看光標。特別是生成的查詢。 – MikeT
應用程序崩潰 – doejogn
請包括logcat。抱歉抱歉錯過了你說它崩潰了。呃估計這是從0行沿INDEX 1行的消息,因爲光標沒有行,你正在嘗試移動。您應該使用c.getCount()檢查遊標中的行數,如果大於0則返回true,否則返回false。 – MikeT