【发布时间】:2014-09-30 22:47:49
【问题描述】:
我有以下疑问:
cursor = helper.getReadableDatabase().rawQuery("select _id, Likert-Skala from "+inAd+" where Name like ?" ,
new String[] { "%" + str2 + "%" });
现在,我收到 Likert-Skala 的“没有这样的表”错误。 但是,如果我这样做:
Cursor c = helper.getReadableDatabase().rawQuery("SELECT * FROM "+inAd+" ", null);
DatabaseUtils.dumpCursor(c);
那么我的结果是,例如:
09-30 18:42:11.212: I/System.out(907): Likert-Skala=1.63
所以表格清楚地在那里,并且没有错字。 有人有想法吗?
【问题讨论】:
-
我认为问题在于您的列名有一个连字符,SQLite 可能将其解释为其他两个术语之间的减法。
-
如果是这样,那么为什么会出现错误消息:“No such column: Likert Skala”?当我要求所有的列时,“Likert-Skala”就可以了?
-
我认为您传递的字符串应该是错误的:"SELECT _id FROM Likert-Skala" +inAd+ "WHERE Name like ?"
-
因为它认为您选择的是表达式
(Likert - Skala),而不是名称“Likert-Skala”。它试图找到一个名为“Likert”的操作数,并减去另一个名为“Skala”的操作数。我建议重命名您的列以不包含 sqlite 可能解释为运算符的字符。