报错: Make sure the Cursor is initialized correctly before accessing data from it

作者: wxyass 分类: Android 发布时间: 2017-11-10 17:08

详细错误是:
java.lang.IllegalStateException: Couldn’t read row 0, col 2 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.
出现这个原因是因为我在获取Cursor中的字段时,获取了一个不存在的字段,例如,我原本要获取数据库book表中的bookId字段,结果获取的时候写成了bookiD,

while (cursor.moveToNext()) {  
      int bookId = cursor.getInt(cursor.getColumnIndex("bookiD"));          
}

注意:Android是区分大小写的,所以我们在获取的时候也要严格按照数据库表字段的大小写来获取数据;

问题出现比如: 创建数据库表时,字段都是大写

CREATE TABLE MST_GROUPPRODUCT_M (
    GPRODUCTID VARCHAR2(36), 
    TERMINALCODE VARCHAR2(20), 
    TERMINALNAME VARCHAR2(500), 
    IFRECSTAND CHAR(1), 
    STARTDATE DATE, 
    ENDDATE DATE, 
    CREATEUSERENG VARCHAR2(30), 
    CREATEDATE DATE , 
    UPDATEUSERENG VARCHAR2(30), 
    UPDATETIME DATE, 
    UPLOADFLAG VARCHAR(30), 
    PADISCONSISTENT VARCHAR(30))

但在读取的时候,用小写字母读取的

while (cursor.moveToNext()) {  
      int bookId = cursor.getInt(cursor.getColumnIndex("gproductid"));          
}

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注