我在从 sqlite 数据库中删除行时遇到了一个奇怪的问题。我第一次尝试删除一行时,它似乎工作正常。但是,此后的任何时候,我都没有收到任何错误,它根本不会删除选定的行。如果我卸载该应用程序并从 Eclipse 重新运行它(我将平板电脑连接到我的电脑进行测试),那么第一次删除将再次起作用。
这是我用来从我的数据库中填充画廊视图的代码
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();
此 toast 消息正在屏幕上显示项目数。例如,如果我创建 3 个项目,然后删除 1,它会在屏幕上显示 2,并且 toast 显示 ITEMS==2。但是,如果我删除另一个,屏幕上仍然有 2 个项目,ITEMS==2。所以看起来游标工作正常,但数据库没有。
这是数据库中删除行的代码:
return mDb.delete(LOOKS_TABLE, KEY_ROWID+"="+rowId, null)>0;
当调用 mDb 时,我还将 rowId 记录为正确的。
再一次,我没有收到任何错误,代码只是不工作。任何帮助将不胜感激。