我不知道我哪里出错,我是Android开发的新手,并尝试使用SQLITE数据库的代码:
我有一个名为cards的数据库,其中有一个名为mycards的表 我的创建声明是:
private static final String DATABASE_CREATE =
"create table mycards(card_id integer primary key autoincrement, "
+ NAME + " text not null, card_type text not null,json_string text not null);";
我的插入功能如下:
public long insertCard(String name, String type, String json_string) {
ContentValues initialValues = new ContentValues();
initialValues.put(NAME, name);
initialValues.put(TYPE, type);
initialValues.put(JSON, json_string);
return mDb.insert(DATABASE_TABLE, null, initialValues);
}
//here TYPE is card_type
card_type列中的有三个可能的值Pcard,Bcard,Ccard。 当我想要检索数据时,我希望它在列card_type中的值(字符串)上进行过滤。
因此我的获取功能是:(仅显示一种类型):
public Cursor fetchallPCards() {
return mDb.query(DATABASE_TABLE, new String[] {"card_name"},TYPE+"="+"Pcard", null, null, null, null);
}
但是我得到了错误:
03-14 00:26:21.233: E/SQLiteLog(701): (1) no such column: Pcard
我出错了哪里?
据我所知,我认为我是对的。
答案 0 :(得分:1)
您的查询中需要围绕字符串引用,请尝试:
return mDb.query(DATABASE_TABLE, new String[] { "card_name" }, TYPE + "=" + "'Pcard'", null, null, null, null);
答案 1 :(得分:0)
将fetchallPCards
方法更改为如下所示:
public Cursor fetchallPCards() {
return mDb.query(DATABASE_TABLE, new String[] {"card_name"},TYPE+"=?",
new String[] {"Pcard"}, null, null, null);
}