让我直接谈到这一点。即使查询的语法正确,我也会得到“没有这样的列异常”。 以下是表格创建。
private void subCategory() {
String query = ("CREATE TABLE " + TABLE_SUB_CATEGORY + " ("
+ COL_SUB_CATEGORY_ID + " VARCHAR(50), "
+ COL_SUB_CATEGORY_NAME + " VARCHAR(250) , "
+ COL_SUB_CATEGORY_REFRENCE_ID + " VARCHAR(250) , "
+ COL_SUB_CATEGORY_IMAGE_PATH + " VARCHAR(300), "
+ COL_SUB_CATEGORY_IMAGE_DATA + " BLOB , "
+ COL_SUB_CATEGORY_DESCRIPTION + " VARHCAR(250) );");
database.execSQL(query);
}
我想要获得价值的地方是。
Cursor cursor1 = db.query(DbHandler.TABLE_SUB_CATEGORY, null, " COL_SUB_CATEGORY_REFRENCE_ID " + "= ?", new String[] { categoryId }, null, null, null);
我正在使用另一种类型的电话。
String query = "SELECT * FROM " + DbHandler.TABLE_SUB_CATEGORY + " WHERE COL_SUB_CATEGORY_REFRENCE_ID = ? ";
Cursor cursor = db.rawQuery(query, new String[] { categoryId })
这两种方法似乎都不起作用。我得到“没有这样的列例外”。
有人可以帮我解决这个问题。 提前谢谢。
答案 0 :(得分:1)
在create table中,查询COL_SUB_CATEGORY_REFRENCE_ID是常量,但在select查询中,您使用了“COL_SUB_CATEGORY_REFRENCE_ID”。
而不是:
Cursor cursor1 = db.query(DbHandler.TABLE_SUB_CATEGORY, null, " COL_SUB_CATEGORY_REFRENCE_ID " + "= ?", new String[] { categoryId }, null, null, null);
尝试:
Cursor cursor1 = db.query(DbHandler.TABLE_SUB_CATEGORY, null, COL_SUB_CATEGORY_REFRENCE_ID + "= ?", new String[] { categoryId }, null, null, null);