简体   繁体   English

无法从Sqlite数据库中的光标窗口读取第0行,第1列

[英]Failed to read row 0 , Column -1 From a cursor window in Sqlite database

Failed to read row 0 , Column -1 From a cursor window in Sqlite database 无法从Sqlite数据库中的光标窗口读取第0行,第1列

I used this code . 我用过这段代码。

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

This happens when you try to get value from the Cursor for a column which either does not exist or was not included in the Select query. 当您尝试从Cursor获取不存在或未包含在Select查询中的列时,会发生这种情况。

Since you are selecting all the columns it is most likely that you made a spelling mistake in one of the column names. 由于您选择了所有列,因此很可能您在其中一个列名中出现了拼写错误。

Most likely 最有可能的

cursor.getString(cursor.getColumnIndex("countyr_id"))

Compare all the column names in the method to the names that you use in your Create statement for misc table. 将方法中的所有列名称与您在misc表的Create语句中使用的名称进行比较。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM