2011-07-30 144 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; 

     } 
    } 
相关问题