android.database.sqlite.SQLiteException:没有这样的列ShopName
我试图从名为LocationCode的列中获取值,以定义是否显示店铺名称。但是,有一个错误说没有这样的栏目。拼写没有错误 这是代码:android.database.sqlite.SQLiteException:没有这样的列ShopName,android,sqlite,Android,Sqlite,我试图从名为LocationCode的列中获取值,以定义是否显示店铺名称。但是,有一个错误说没有这样的栏目。拼写没有错误 这是代码: public List<String> getQuotes() { List<String> list = new ArrayList<>(); Cursor cursor = database.rawQuery("SELECT ShopName,LocationCode FROM WhereToEat WHER
public List<String> getQuotes() {
List<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery("SELECT ShopName,LocationCode FROM WhereToEat WHERE LocationCode = 'WhiteFarm' ", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
list.add(cursor.getString(0));
cursor.moveToNext();
}
cursor.close();
return list;
}
我相信这个专栏是存在的。试试这个。可能您需要在单引号(‘WhiteFarm’)之间包含“WhiteFarm”。可以通过以下方式实现:
Cursor cursor = database.rawQuery("SELECT ShopName,LocationCode FROM WhereToEat WHERE LocationCode = " + "'" + WhiteFarm + "'", null);
我同意Harshad的观点,只有在列类型为int时才应该使用+WhiteFarm+
您可以找到一些与您正在执行的操作类似的示例查询请记录错误日志。copy paste exact error Statement
shopName
是您最近添加的列吗?数据库是静态的,shopName在开头就存在没有这样的列:shopName(代码1):
说您的表没有列shopName
…可能表“Where-ToEat”不包含“shopName”column.当我使用SELECT*时,它从何处工作,但当我使用SELECT ShopName时,它从何处崩溃,为什么?我明白你的意思。它可以有一个解释:那就是你用单引号把列名括起来,即“'”+列名+“”。因此,在您的示例中,选择ToEat应该使用的“ShopName”。
CREATE TABLE "WhereToEat" (
`ShopName` TEXT,
`Location` TEXT,
`LocationCode` TEXT,
`Photo` BLOB);
Cursor cursor = database.rawQuery("SELECT ShopName,LocationCode FROM WhereToEat WHERE LocationCode = " + "'" + WhiteFarm + "'", null);