2013-12-11 6 views
-1

Iam, новый для программирования на Android, а также SQLIte.Iam для написания ниже кода с сайта. Я пишу базу данных для контактов. Что мне написать, если я хочу удалить какой-либо контакт с ID как 10?Удаление записи в базе данных SQLite

public void deleteContact(Contact contact) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(TABLE_CONTACTS, KEY_ID + " = ?", 
      new String[] { String.valueOf(contact.getID()) }); 
    db.close(); 
} 
+0

В чем проблема в коде выше? – GrIsHu

+0

Вы должны называть эту функцию желаемой активностью, где хотите, используя объект «Контакт». – Piyush

+0

нет Я хочу, чтобы он был удален в Logcat – user3073439

ответ

0

Чтобы соответствовать целые числа, вы не можете передать параметр строки, используйте следующую вместо:

public void deleteContact(Contact contact) { 
    SQLiteDatabase db = this.getWritableDatabase(); 
    db.delete(TABLE_CONTACTS, KEY_ID + "=" + contact.getID(), null); 
    db.close(); 
} 
+0

-1 Это ничего не добавляет к OP-коду! –

+0

написать подробный комментарий почему -1 – Malder

+0

Убрано -1, так как ваш ответ может решить проблему несоответствия типа данных. –

0

Если вы хотите, чтобы убедиться, что строка будет удалена, используйте этот:

Cursor cursor = this.dB.query(Table_name,new String[] {"id","column2"}, "id LIKE '" + row_Id + "%'" , null , null , null , null); 

if (cursor.moveToFirst()) { 
System.out.print("Still Exists"); 
} 
else 
{ 
System.out.print("Deleted"); 
} 
+0

Это не имеет большого смысла ... Если 'delete' не выполняется, генерируется исключение. –

1

Вы можете проверить delete вернуться к журналу удаленных строк:

public void deleteContact(Contact contact) { 
    int n; 
    SQLiteDatabase db = this.getWritableDatabase(); 
    n=db.delete(TABLE_CONTACTS, KEY_ID + " = ?", new String[] {String.valueOf(contact.getID())}); 
    db.close(); 
    Log.v("deleteContact", "Deleted "+String.valueOf(n)+" row(s)."); 
} 
Смежные вопросы