Android 从sqlite获取数据,WHERE子句中出错

Android 从sqlite获取数据,WHERE子句中出错,android,where-clause,android-sqlite,Android,Where Clause,Android Sqlite,我不知道哪里出了问题,我是android开发新手,正在尝试使用SQLITE数据库编写代码: 我有一个名为cards的数据库和一个名为mycards的表 我的create语句是: private static final String DATABASE_CREATE = "create table mycards(card_id integer primary key autoincrement, " + NAME + " text not null, card_t

我不知道哪里出了问题,我是android开发新手,正在尝试使用SQLITE数据库编写代码:

我有一个名为cards的数据库和一个名为mycards的表 我的create语句是:

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
在“卡片类型”列中,有三个可能的值Pcard、Bcard、Ccard。 当我想要检索数据时,我希望它根据列card_type中的值(字符串)进行过滤

因此,我的fetch函数是:(仅显示一种类型):

但是我犯了一个错误:

03-14 00:26:21.233: E/SQLiteLog(701): (1) no such column: Pcard
我哪里出错了?
就我所知,我认为我是对的。

如果查询中的字符串需要引号,请尝试:

return mDb.query(DATABASE_TABLE, new String[] { "card_name" }, TYPE + "=" + "'Pcard'", null, null, null, null);

您需要在查询中的字符串周围加引号,请尝试:

return mDb.query(DATABASE_TABLE, new String[] { "card_name" }, TYPE + "=" + "'Pcard'", null, null, null, null);

fetchallPCards
方法更改为如下所示:

public Cursor fetchallPCards() { 

   return mDb.query(DATABASE_TABLE, new String[] {"card_name"},TYPE+"=?", 
                                    new String[] {"Pcard"}, null, null, null);   
}

fetchallPCards
方法更改为如下所示:

public Cursor fetchallPCards() { 

   return mDb.query(DATABASE_TABLE, new String[] {"card_name"},TYPE+"=?", 
                                    new String[] {"Pcard"}, null, null, null);   
}