0

データベースから特定の行を選択しようとしていますが、インデックスが範囲外になり続けていたためWHERE、今のところその部分を削除して、すべてのデータを取得することにしました。このメソッドを作成するために、Android チュートリアルhttp://developer.android.com/training/basics/data-storage/databases.html#DbHelperを使用しました。しかし、クエリから値を取得しようとすると、CursorIndexOutOfBoundsException が発生します。

私のコード:

String getSite() {
    SQLiteDatabase db = this.getReadableDatabase();
            //get all data for now
    Cursor c = db.query(
        TABLE_NAME,  // The table to query
        null,                               // The columns to return
        null,                                // The columns for the WHERE clause
        null,                            // The values for the WHERE clause
        null,                                     // don't group the rows
        null,                                     // don't filter by row groups
        null                                 // don't sort
        );
    c.moveToFirst();
        String test= c.getString(0); 
    c.close();
    return test;}
}

エラー: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 6

c.count() を確認したところ 6 だったので、範囲外の可能性のあるインデックスを参照している理由がわかりません

ありがとうございました

4

1 に答える 1

0

カーソルが動かなかった場合、カーソルは空です。

試す

if (c.moveToFirst()) {
    String test= c.getString(0);
    // or String test= c.getString(c.getColumnIndex("column_name")); 
}
于 2013-01-21T20:31:12.880 に答える