【问题标题】:SQLite, can't delete columnsSQLite,无法删除列
【发布时间】:2010-02-15 15:57:46
【问题描述】:

更新:见自我回答,“已修复,需要更改 where 子句”

我已经设置了一个内容提供者,出于某种原因,我可以通过这种方式删除一行:

getContentResolver().delete(myUri, "_id=" + "3", null);

但我无法以这种方式删除一行:

getContentResolver().delete(myUri, "NAME=" + "chris", null);

收到此错误:

02-15 15:48:08.197: ERROR/AndroidRuntime(3043): android.database.sqlite.SQLiteException: no such column: chris: , while compiling: DELETE FROM User WHERE NAME=chris


我检查了我的数据库文件,它在那里.. 但由于某种原因,我只能通过 _id 列从我的数据库中删除列,

我该如何解决这个问题?

错误:

02-15 15:48:08.197: ERROR/AndroidRuntime(3043): android.database.sqlite.SQLiteException: no such column: idanmoshik1: , while compiling: DELETE FROM User WHERE USER_NAME=idanmoshik1

*User 是我的表名。

谢谢,

莫希克

【问题讨论】:

    标签: android sqlite


    【解决方案1】:

    您应该像这样在chrisidanmoshik1 周围添加单引号(')

    getContentResolver().delete(myUri, "NAME='chris'", null);
    

    【讨论】:

    • 您能解释一下原因吗?非常感谢。
    【解决方案2】:

    更好的是,忘记使用转义引号和其他微妙之处

    final int n = getContentResolver().delete(myUri, "NAME = ?", new String[] {"user's name"});
    

    【讨论】:

      【解决方案3】:

      已修复,需要更改 where 子句

      【讨论】:

      • 您为什么不正确关闭您的问题或将答案 1 或 2 标记为正确答案?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-13
      • 2018-06-23
      • 2019-11-09
      相关资源
      最近更新 更多