如何在Android中删除一行?
在android上删除如何在Android中删除一行?,android,sqlite,Android,Sqlite,在android上删除ListView中的一行时出现问题,我使用的是SQLite 这是我的类删除文件(只需要删除数据库中的项) 在课堂上,我呼吁使用这个 dao.deleteCallWhenUploadSuccess(filename); 但它抛出了一个例外: e: "sqlite.SQLiteException: near "2016": syntax error (code 1):, while compiling: DELETE FROM recordStatus WHERE file
ListView
中的一行时出现问题,我使用的是SQLite
这是我的类删除文件(只需要删除数据库中的项)
在课堂上,我呼吁使用这个
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附近
我试图补充:
String where=CallDatabaseHelper.FILE_NAME+“=”+“+filenamewis;
但是错误仍然存在。如何传递此错误?并使用DELETE语句删除文件名为的文件,在这种情况下,文件名中有许多空格和特殊字符。您可以更轻松地删除此文件
db.delete(CallDatabaseHelper.TABLE_NAME, CallDatabaseHelper.FILE_NAME + "=?", new String[]{fileNameWhis});
两件事:
- 我会做一个控制台日志,在函数顶部显示文件名,这样您就知道它的格式正确
- 正如在另一个答案中指出的,您还需要获得一个可写数据库
- 在查询中使用Where和Where:
db = callDatabaseHelper.getWriteableDatabase();
String where = CallDatabaseHelper.FILE_NAME + " = ?";
String [] whereArgs = new String[] {fileNameWhis}
db.delete(CallDatabaseHelper.TABLE_NAME, where, whereArgs);
这是一种更安全的查询方式,可能会解决您的问题。我不知道您的合同。CallDatabaseHelper.CONTENT\u URI
是什么意思?
db = callDatabaseHelper.getWriteableDatabase();
String where = CallDatabaseHelper.FILE_NAME + " = ?";
String [] whereArgs = new String[] {fileNameWhis}
db.delete(CallDatabaseHelper.TABLE_NAME, where, whereArgs);