【问题标题】:getting error - Make sure the Cursor is initialized correctly before accessing data from it出现错误 - 确保游标在从中访问数据之前已正确初始化
【发布时间】:2015-01-16 14:11:44
【问题描述】:

在从 sqlite 检索数据时遇到异常。

11-19 11:37:43.357:E/AndroidRuntime(1494):java.lang.IllegalStateException:无法从 CursorWindow 读取第 0 行第 -1 行。确保 Cursor 在从中访问数据之前已正确初始化。

查询是 -

 Cursor c= db.rawQuery("SELECT * FROM "+OpenHelper.TABLE_ACTIVITY_DETAIL+" WHERE "+OpenHelper.Activity_Date+" = '"+date+"'",null);

    if(c != null){
        if (c.moveToFirst()){
            do{
                task=c.getString(c.getColumnIndex("task"));
                activityList.add(""+task); 
            }while(c.moveToNext());
        }
    }
    c.close();  
    db.close();

有什么办法吗?

【问题讨论】:

  • date变量的值是多少?
  • 字符串格式的日期
  • 错误来自访问列。当游标中不存在列时,-1 通常是返回值getColumnIndex()。如果您需要帮助,请发布更多代码。
  • @yuvaツ 你能发布你的完整代码吗?获取光标后你在做什么?
  • 所以你的活动详情表没有task列。

标签: java android sqlite cursor


【解决方案1】:

显然没有名为“任务”的列。 请在下一行确认您的列名。

 task=c.getString(c.getColumnIndex("task"));

确认您的列名,您就可以开始了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-22
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-27
    相关资源
    最近更新 更多