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

     } 
    } 
関連する問題