2011-07-30 13 views
7

Estoy intentando consultar mi base de datos en función de una identificación específica.Android SQL: compruebe si existe registro en la base de datos

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

Si esta es la primera vez que la actividad se ha ejecutado, la tabla existirá junto con la columna id, pero no habrá un registro con el ID específico. ¿Cómo puedo verificar si ese registro específico existe y si no lo tiene, agregarlo? He encontrado mucho sobre cómo verificar si existe una columna específica, pero nada sobre verificar si existe un registro específico.

Hasta ahora he intentado obtener el índice de la columna de identificación y verificar si devuelve -1, pero en realidad está retornando 1 por algún motivo. ¿Qué puedo usar en una declaración if para verificar que la columna de ID aún no se haya creado?

Respuesta

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

perfecto, gracias. – ryandlf

0

Mi código es:

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; 

     } 
    } 
Cuestiones relacionadas