【问题标题】:No such table when table is clearly there - SQ-Lite当桌子明显存在时没有这样的桌子 - SQ-Lite
【发布时间】: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 可能解释为运算符的字符。

标签: android sqlite


【解决方案1】:

您可能不得不取消“-”符号。否则应该没问题:

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

【讨论】:

猜你喜欢
  • 2018-04-06
  • 2018-07-10
  • 2011-01-29
  • 2021-07-01
  • 2018-09-04
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 2021-04-19
相关资源
最近更新 更多