【发布时间】: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'";