Hit*_*esh 3 java sql sqlite android
无法从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();
}
}
}
Run Code Online (Sandbox Code Playgroud)
当您尝试从中获取Cursor不存在或未包含在Select查询中的列的值时,就会发生这种情况。
由于您正在选择所有列,因此很可能在其中一个列名称中犯了拼写错误。
最有可能的
cursor.getString(cursor.getColumnIndex("countyr_id"))
Run Code Online (Sandbox Code Playgroud)
将方法中的所有列名称与您在表的Create语句中使用的名称进行比较misc。