【问题标题】:Failed to read row 0 , Column -1 From a cursor window in Sqlite database无法从 Sqlite 数据库中的游标窗口读取第 0 行、第 -1 列
【发布时间】:2014-08-23 05:43:30
【问题描述】:

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

【问题讨论】:

    标签: java android sql sqlite


    【解决方案1】:

    当您尝试从 Cursor 获取不存在或未包含在 Select 查询中的列的值时,会发生这种情况。

    由于您选择了所有列,因此您很可能在其中一个列名中出现拼写错误。

    很有可能

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

    将方法中的所有列名与您在Create 语句中为misc 表使用的名称进行比较。

    【讨论】:

    • 它的工作.. 谢谢,有两个enteries 1.cursor.getString(cursor.getColumnIndex(“city_rowoffset”))到cursor.getString(cursor.getColumnIndex(“city_rawoffset”)),
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    相关资源
    最近更新 更多