0

在我的数据库收件箱表中有列名路径来保留文件的路径,但是当我试图在路径的基础上删除该记录时,模拟器会抛出 FATAL 异常。

// Deleting single File
public void deleteFile(File file) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(TABLE_INBOX, KEY_PATH + " = "+file.getPath(),null);
    db.close();
}

例外是:

FATAL EXCEPTION:main

android.database.sqlite.SQLiteExceprion: unrecognized token:"1kbFile"(code 1):,while compiling :DELETE inbox WHERE path=1kbFile.txt.

1kbFile.txt是我要删除的路径,它已经保存在数据库中。我该如何解决这个问题?

4

2 回答 2

1

尝试添加'到您的文件名,如下所示:

db.delete(TABLE_INBOX, KEY_PATH + " = '" + file.getPath() + "'", null);

或者您也可以尝试使用单独的参数:

String whereString = KEY_PATH + " = ?";
String[] whereArgs = new String[] {file.getPath()};
db.delete(TABLE_INBOX, whereString, whereArgs);
于 2013-09-08T19:52:19.617 回答
0

在值周围使用 '。例如:

db.delete(TABLE_INBOX, KEY_PATH + " = '"+file.getPath()+"'",null);
于 2013-09-08T19:52:58.670 回答