从sqlite数据库中获取数据不返回任何记录

时间:2017-04-13 10:52:50

标签: android sqlite android-sqlite

在数据库中成功插入行。我导出sqlite数据库文件,它显示我的记录。现在我想从数据库中获取该记录。数据库只有1条记录。

 String containerData = "";

        SQLiteDatabase db= this.getReadableDatabase();
        Cursor cursor= db.rawQuery("select "+ " * " + " from "+ TABLE_NAME, null);

 if(cursor != null){
            cursor.moveToFirst();    
            while(cursor.moveToNext()){
            containerData= cursor.getString(0);
           }

        cursor.close();
        db.close();

我曾尝试使用db.query(),也尝试删除while循环并使用以下内容。

  containerData= cursor.getString(0);

但是这给了我以下错误消息

  

方法抛出' android.database.CursorIndexOutOfBoundsException   异常。

我的表中共有5列。

2 个答案:

答案 0 :(得分:1)

您只检查游标是否为空,您需要检查该游标中是否还有任何值:

if (cursor != null && !cursor.isAfterLast()){
...
}

答案 1 :(得分:1)

尝试以下代码:

 String containerData = "";

 SQLiteDatabase db= this.getReadableDatabase();
 Cursor cursor= db.rawQuery("select "+ " * " + " from "+ TABLE_NAME, null);

 if(cursor != null){
    cursor.moveToFirst();    

    while (!cursor.isAfterLast()){
        containerData= cursor.getString(0);
        cursor.moveToNext();
        Log.d("ShowData->", containerData);
    }
 }

 cursor.close();
 db.close();