Android 当桌子明显在那里时,没有这样的桌子-SQ Lite

Android 当桌子明显在那里时,没有这样的桌子-SQ Lite,android,sqlite,Android,Sqlite,我有以下疑问: cursor = helper.getReadableDatabase().rawQuery("select _id, Likert-Skala from "+inAd+" where Name like ?" , new String[] { "%" + str2 + "%" }); 现在,我为Likert Skala得到了一个“没有这样的表”错误。 但是,如果我这样做: Cursor c = helper.getReadableDatabase().

我有以下疑问:

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
所以这张桌子很清楚,没有打字错误。
有人有主意吗?

你可能必须去掉“-”号。否则就可以了:

String sql = "SELECT _id FROM Likert-Skala WHERE Name like ?";
String[] str = {"%" + str2 + "%"};
Cursor cursor = this.helper.getReadableDatabase().rawQuery(sql, str); 

我认为问题在于您的列名有一个连字符,SQLite可能将其解释为两个其他术语之间的减法。如果是这样,那么为什么会出现错误消息:“没有这样的列:Likert Skala”?当我要求所有列时,“Likert Skala”的结果很好?我认为您传递的字符串应该是错误的:“SELECT _idfrom Likert Skala”+inAd+“WHERE Name like?”因为它认为您选择的是表达式
(Likert-Skala)
,而不是名称“Likert Skala”。它试图找到一个名为“Likert”的操作数,然后减去另一个名为“Skala”的操作数。我建议重命名您的列,使其不包含sqlite可能解释为运算符的字符。@newnewbie我开始理解Likert_Skala对“u”符号有效,或者[Likert Skala]对“[…]”括号有效。以下是链接: