如何在sqlite中检索结果
How to retrieve results in sqlite
我对数据库非常陌生,并试图根据区域提取值。我的 table 已有区域 (draft_region_name) 列。下面是我的代码
SQLiteDatabase db = this.getWritableDatabase();
String where = "";
for (int i = 0; i < names.size(); i++) {
where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";
if (i != (names.size() - 1))
where = where + " or ";
}
Cursor cursor = db.query(TABLE_DRAFT_TABLE, null, where, null, null, null, null);
我得到了这个期望
android.database.sqlite.SQLiteException: no such column: AHMEDABAD (code 1): , while compiling: SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD
您可能忘记了 sqlite 字符串的 ' 也试试这个,您的 sqlite 应该以 ';' 结尾不应该吗?:
for (int i = 0; i < names.size(); i++) {
where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";
if (i != (names.size() - 1))
where = where + " or ";
}
where = where + ";"
行
where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";
编译,因为异常在这个语句中说:
SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD
这是错误的,如果要检查字符串,则必须将搜索关键字设置为引号。所以这将是正确的查询:
SELECT * FROM DraftTable WHERE draft_region_name = 'AHMEDABAD'
要解决它,只需将您的代码包装在 assemble 您的 where
子句中,如下所示:
where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";
我对数据库非常陌生,并试图根据区域提取值。我的 table 已有区域 (draft_region_name) 列。下面是我的代码
SQLiteDatabase db = this.getWritableDatabase();
String where = "";
for (int i = 0; i < names.size(); i++) {
where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";
if (i != (names.size() - 1))
where = where + " or ";
}
Cursor cursor = db.query(TABLE_DRAFT_TABLE, null, where, null, null, null, null);
我得到了这个期望
android.database.sqlite.SQLiteException: no such column: AHMEDABAD (code 1): , while compiling: SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD
您可能忘记了 sqlite 字符串的 ' 也试试这个,您的 sqlite 应该以 ';' 结尾不应该吗?:
for (int i = 0; i < names.size(); i++) {
where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";
if (i != (names.size() - 1))
where = where + " or ";
}
where = where + ";"
行
where = where + KEY_DRAFT_REGION_NAME + " = " + names.get(i).toString() + "";
编译,因为异常在这个语句中说:
SELECT * FROM DraftTable WHERE draft_region_name = AHMEDABAD
这是错误的,如果要检查字符串,则必须将搜索关键字设置为引号。所以这将是正确的查询:
SELECT * FROM DraftTable WHERE draft_region_name = 'AHMEDABAD'
要解决它,只需将您的代码包装在 assemble 您的 where
子句中,如下所示:
where = where + KEY_DRAFT_REGION_NAME + " = '" + names.get(i).toString() + "'";