2011-07-30 67 views
7

我想根據特定的ID查詢我的數據庫。Android SQL:檢查數據庫中是否存在記錄

String sql = "SELECT * FROM mash WHERE recipe_id = '" + id + "'"; 
Cursor data = database.rawQuery(sql, null); 

如果這是第一次的活動已經運行,該表將與id列一起存在,但不會有與特定ID的記錄。我如何檢查特定記錄是否存在,如果不存在,添加它?我發現很多關於檢查特定列是否存在的問題,但沒有關於檢查特定記錄是否存在的問題。

到目前爲止,我已經嘗試獲取ID列索引,並檢查它是否返回-1,但實際上由於某種原因返回1。我可以在if語句中使用什麼來驗證id列尚未創建?

回答

19
if (cursor.moveToFirst()) { 
    // record exists 
} else { 
    // record not found 
} 
+0

完美,謝謝。 – ryandlf

0

我的代碼是:

public void addContact(String a, String b, String c, String d, SQLiteDatabase db) 
    { 
     //cursor is use to check if data is availble then show row is exist if not then execute insert query. 
     Cursor mCursor = db.rawQuery("SELECT * FROM " + TABLE_CONTACTS + " WHERE email=? ", new String[]{b}); 

     if (mCursor.moveToFirst()) 
     { 
      value=false; 
      Toast.makeText(context,"Email alreay exist please enter anothe email id",Toast.LENGTH_LONG).show(); 
     } 
     else 
     { 
      ContentValues values = new ContentValues(); 

      values.put(Database_Handler.NAME, a); // Contact Name 
      values.put(Database_Handler.EMAIL, b); 
      values.put(Database_Handler.PASSWORD, c); 
      values.put(Database_Handler.NUMBER, d); 

      db.insert(Database_Handler.TABLE_CONTACTS, null, values); 
      Log.e("DATABASE OPERATION", "One row is insert"); 

      Toast.makeText(context,"Data insert Sucessfully",Toast.LENGTH_SHORT).show(); 
      db.close(); 
      value=true; 

     } 
    } 
相關問題