无法从Sqlite数据库中的光标窗口读取第0行,第-1列
我使用了这段代码。
public Misc fetchmiscdetails(Context aContext,
String acityName, String aLangName) {
Misc miscobj = null;
Cursor cursor = null;
String where;
try {
String sqlTables = "misc";
where ="Select * from misc ";
cursor = db.rawQuery(where, null);
// if (aLangName.equals("English"))
// where = "city_name = ?";
// else
// where = "city_name_ger = ?";
qb.setTables(sqlTables);
// cursor = qb.query(db, null, where, new String[] { acityName}, null, null, null);
if (cursor.getCount() > 0) {
cursor.moveToFirst();
do {
miscobj = new Misc(
cursor.getString(cursor.getColumnIndex("_id")),
cursor.getString(cursor.getColumnIndex("city_id")),
cursor.getString(cursor.getColumnIndex("countyr_id")),
cursor.getString(cursor.getColumnIndex("city_name")),
cursor.getString(cursor.getColumnIndex("city_name_ger")),
cursor.getString(cursor.getColumnIndex("city_lat")),
cursor.getString(cursor.getColumnIndex("city_long")),
cursor.getString(cursor.getColumnIndex("city_population")),
cursor.getString(cursor.getColumnIndex("city_timezone")),
cursor.getString(cursor.getColumnIndex("city_gmt")),
cursor.getString(cursor.getColumnIndex("city_dst")),
cursor.getString(cursor.getColumnIndex("city_lat_long")),
cursor.getString(cursor.getColumnIndex("city_category")),
cursor.getString(cursor.getColumnIndex("city_text")),
cursor.getString(cursor.getColumnIndex("city_rowoffset")),
cursor.getString(cursor.getColumnIndex("city_value"))
);
} while (cursor.moveToNext());
}
return miscobj;
} catch (Exception e) {
return miscobj;
} finally {
if (cursor != null && !cursor.isClosed()) {
cursor.close();
}
}
}
答案 0 :(得分:4)
当您尝试从Cursor
获取不存在或未包含在Select
查询中的列时,会发生这种情况。
由于您选择了所有列,因此您很可能在其中一个列名称中出现拼写错误。
最有可能
cursor.getString(cursor.getColumnIndex("countyr_id"))
将方法中的所有列名称与您在Create
表的misc
语句中使用的名称进行比较。