【问题标题】:Android rawQuery call crashing appAndroid rawQuery调用崩溃应用
【发布时间】:2011-09-11 12:06:36
【问题描述】:

我正在打这个电话:

sql=select * from Lists where Name = test
Cursor cr = GetUserDb().GetSQLiteDb().rawQuery(sql, null);

名字是主键

它就在 rawQuery() 调用中,因为 GetUserDb() 和 GetSQLiteDb() 不为空。

logcat 说:

原因:android.database.sqlite.SQLiteException:没有这样的列:测试:,编译时:从列表中选择 *,其中名称 = 测试。这对我来说没有意义,因为 test 不是列名,它的数据在名称列中。

是什么导致它崩溃?

-迈克

【问题讨论】:

  • 尝试将 'test' 放在单引号中,即使其成为字符串文字。
  • 我对 sqlite 语法不太熟悉,但我最好的猜测是您需要将“test”放在某种形式的引号中,或者在 sqlite 查询中分隔字符串
  • 没有工作没有按预期。我试过单引号和双引号。只是不确定为什么它认为“测试”是一列?嗯嗯……
  • 好吧,它确实有效,我第一次肯定做错了。这有效:final String s = "select * from Lists where Name = 'test'";

标签: android sqlite


【解决方案1】:

这行得通:final String s = "select * from Lists where Name = 'test'";

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 1970-01-01
    • 2012-10-04
    • 2014-07-21
    • 1970-01-01
    相关资源
    最近更新 更多