如何解决没有这样的列SQLiteException

时间:2015-12-13 15:49:31

标签: android sqlite

让我直接谈到这一点。即使查询的语法正确,我也会得到“没有这样的列异常”。 以下是表格创建。

    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 })

这两种方法似乎都不起作用。我得到“没有这样的列例外”。

有人可以帮我解决这个问题。 提前谢谢。

1 个答案:

答案 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);