我在使用SQLite删除ListView
中的行时遇到问题,我正在使用SQLite。
这是我的类删除文件(只需删除数据库中的项目)。
public void deleteCallWhenUploadSuccess(String fileNameWhis)
{
db = callDatabaseHelper.getReadableDatabase();
String where = CallDatabaseHelper.FILE_NAME + "=" + fileNameWhis;
db.delete(CallDatabaseHelper.TABLE_NAME, where, null);
}
在课堂上,我打电话来使用它。
dao.deleteCallWhenUploadSuccess(filename);
但它抛出异常:
e: "sqlite.SQLiteException: near "2016": syntax error (code 1):, while compiling:
DELETE FROM recordStatus WHERE fileName=109092 2016-03-17 01.018.03.mp3"
在"
WHERE "fileName
标记丢失
我试图添加:
String where = CallDatabaseHelper.FILE_NAME + "=" + "'"'" + fileNameWhis;
但错误仍然存在。如何传递此错误?并使用DELETE语句删除fileName
的文件,在这种情况下,fileName
中有多个空格和特殊字符?
答案 0 :(得分:1)
一些事情:
在查询中使用Where和WhereArgs:
db = callDatabaseHelper.getWriteableDatabase();
String where = CallDatabaseHelper.FILE_NAME + " = ?";
String [] whereArgs = new String[] {fileNameWhis}
db.delete(CallDatabaseHelper.TABLE_NAME, where, whereArgs);
这是一种更安全的查询方式,可以解决您的问题。
答案 1 :(得分:0)
您可以更轻松地删除它
db.delete(CallDatabaseHelper.TABLE_NAME, CallDatabaseHelper.FILE_NAME + "=?", new String[]{fileNameWhis});