2012-01-03 53 views

Trả lời

37

Bạn chỉ có thể sử dụng truy vấn sql xóa.

public void delete(String id) { 
     db.execSQL("delete from "+TBL_NAME+" where Google='"+id+"'"); 
    } 

Trong truy vấn của bạn, bạn đang đi qua null trong nơi whereArgs

db.delete(table, whereClause, whereArgs) 

Nó phải là như thế này

db.delete(TBL_NAME, "Google=?", new String[]{Integer.toString(id)}); 
+1

+1 đồng ý với việc đưa 'whereClause' như ** Google =? ** –

2
database.delete("tablename", "column_name=?", new String[] {Integer.toString(id)}); 
  • nơi các giá trị điều kiện nên được coi là một mảng chuỗi
6

Hãy thử điều này

public boolean favoriteDelete(int id) { 
    return db.delete(DATABASE_TABLE, KEY_ROWID + "=" + id, null) > 0; 
} 
+2

Tôi có thể biết sự khác biệt trong câu trả lời của bạn và câu hỏi của người sử dụng là gì? –

0

thêm dấu nháy đơn trong mệnh đề where của bạn ...

return database.delete("FavoriteData", "Goggle" + "='" + id+"'", null) > 0; 
0

Tốt hơn nên sử dụng trình giữ chỗ hơn thao tác chuỗi. Ok cho int nhưng ngay sau khi bạn đặt một chuỗi trong đó mọi thứ sẽ đi sai.

String where = COLUMN_NAME_ADDRESS + " = ?"; 
    String[] whereArgs = { String.valueOf(address) }; 

    SQLiteDatabase db = mDbHelper.getWritableDatabase(); 
    db.delete(TABLE_NAME_DEVICES, where, whereArgs); 
Các vấn đề liên quan