【问题标题】:cursor index out of bounds exception游标索引越界异常
【发布时间】:2012-03-16 14:13:25
【问题描述】:

我在打开一个光标索引后出现越界错误 数据库。请任何人告诉我如何打开现有数据库 sqllite-安卓。我想在数据库上触发一个选择查询,然后 检索一些信息?

            public void getPatient(SQLiteDatabase db, String name) {
    // TODO Auto-generated method stub
    db=this.getReadableDatabase();
    //db.open();
    System.out.println("in cursooooooooorrrrrrrrr");
    Cursor c = db.rawQuery("SELECT * from table_patient WHERE COL_Name"+"=?", 
            new String []{name});           
    //c.moveToFirst();

    int index = c.getColumnIndex("COL_FirstName");
    System.out.println("First Name : -----------  "+c.getString(index));
    c.close();


}

【问题讨论】:

    标签: android database sqlite cursor


    【解决方案1】:

    这样做:

    int index = 0;
    
    if(c.moveToFirst())
        index = c.getColumnIndex("COL_FirstName");
    

    【讨论】:

    • 其打印索引 = 0 。请您告诉我如何检查是否打开了正确的数据库以及数据库中是否有数据
    • 您的查询似乎没有返回任何记录。尝试像这样更改您的查询:Cursor c = db.rawQuery("SELECT * FROM table_patient WHERE COL_Name LIKE ?", new String []{name});
    【解决方案2】:

    您必须取消注释 c.moveToFirst()。

    这里是一个例子:

    public WhoisEntry[] getAllEntries(){        
        SQLiteDatabase db = getReadableDatabase();
        String sql = "SELECT * FROM domains_events";
        Cursor result = db.rawQuery(sql, null);
        WhoisEntry[] resultArray = new WhoisEntry[result.getCount()];
        int i=0;
        result.moveToFirst();
        while (i< result.getCount()){
            long date = result.getLong(result.getColumnIndex("exp_date")) * 1000;
            String domainName = result.getString(result.getColumnIndex("domainname"));
            resultArray[i] = new WhoisEntry(domainName, new Date(date));
            //resultArray[i].domainName = 
            //resultArray[i].expirationDate = result.getString(result.getColumnIndex("exp_date"));
            String name = result.getString(result.getColumnIndex("domainname"));
            i++;
        }
        return resultArray;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-08
      • 2011-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-08
      • 2018-11-19
      相关资源
      最近更新 更多