исключение указателя курсора вне границ - PullRequest
2 голосов
/ 16 марта 2012

Я получаю ошибку Указатель курсора за пределами границ после открытия базы данных.Пожалуйста, кто-нибудь может сказать мне, как открыть существующую базу данных в sqllite - Android.Я хочу выполнить запрос на выборку в базе данных и получить некоторую информацию?

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


}

Ответы [ 2 ]

3 голосов
/ 16 марта 2012

сделай так:

int index = 0;

if(c.moveToFirst())
    index = c.getColumnIndex("COL_FirstName");
0 голосов
/ 16 марта 2012

Вы должны раскомментировать 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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...