gpt4 book ai didi

android - 如何在 Android 中删除一行?

转载 作者:行者123 更新时间:2023-11-30 01:28:49 26 4
gpt4 key购买 nike

我在 Android 上删除 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中有很多空格和特殊字符?

最佳答案

一些事情:

  • 我会做一个控制台日志,在函数顶部吐出文件名,这样你就知道它的格式正确
  • 正如其他答案中所指出的,您还需要获得一个可写的数据库。
  • 在您的查询中使用 Where 和 WhereArgs:

    db = callDatabaseHelper.getWriteableDatabase();
    String where = CallDatabaseHelper.FILE_NAME + " = ?";
    String [] whereArgs = new String[] {fileNameWhis}
    db.delete(CallDatabaseHelper.TABLE_NAME, where, whereArgs);

这是一种更安全的查询方式,可能会解决您的问题。

关于android - 如何在 Android 中删除一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36043973/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com