我有一個奇怪的問題,從SQLite數據庫中刪除行。我第一次嘗試刪除一行時,它似乎工作正常。但是,此後的任何時候,我都不會收到錯誤,它只是不會刪除選定的行。如果我卸載應用程序並從eclipse重新運行它(我的平板電腦已連接到我的電腦進行測試),那麼第一次刪除將再次運行。android sqlite刪除行不工作
這裏是我使用從我的數據庫
Cursor cursor = _garmentAdapter.fetchAllLooks();
cursor.moveToLast();
final ArrayList<Bitmap> al = new ArrayList<Bitmap>();
_labels=new ArrayList<String>();
int totalGarments=0;
for(int i=cursor.getCount()-1; i>=0; i--) {
totalGarments++;
Bitmap bd=BitmapFactory.decodeFile(cursor.getString(3));
String label=cursor.getString(1);
al.add(bd);
_labels.add(label);
cursor.moveToPrevious();
}
Toast.makeText(BrowseLooks.this, "ITEMS=="+totalGarments, Toast.LENGTH_SHORT).show();
這吐司消息在屏幕上顯示的項目數填充圖庫視圖代碼。例如,如果我創建3個項目,然後刪除1,它將在屏幕上顯示2,並且吐司表示ITEMS == 2。但是,如果我刪除另一個,屏幕上仍然有2個項目,ITEMS == 2。所以看起來遊標工作正常,但數據庫不是。
下面是刪除行中的數據庫的代碼:
return mDb.delete(LOOKS_TABLE, KEY_ROWID+"="+rowId, null)>0;
我也登錄ROWID爲正確的,當MDB被調用。
再次,我沒有得到任何錯誤,代碼只是不工作。任何幫助將非常感激。
今天下午我會試試這個。你能解釋爲什麼這個代碼可能在我使用的代碼不存在的地方工作嗎? – Nightmare6m
我剛剛嘗試了上面的建議,並沒有任何影響。你有什麼其他的建議? – Nightmare6m
String table =「beaconTable」; String whereClause =「_id」+「=?」; String [] whereArgs = new String [] {String.valueOf(row)}; db.delete(table,whereClause,whereArgs); –