游标返回列名而不是值

时间:2014-06-20 23:23:34

标签: android sqlite android-sqlite android-cursor

我想从表格中获取数据"学生"在SQLite android数据库中

这是我用来检索数据的方法

public Cursor getAllStudent(){


    SQLiteDatabase db= helper.getWritableDatabase();

    String[] columns={"_id",
            "'reg_number'",
            "'School_id'",
            "'class_id'",
            "'first_name'",
            "'last_name'",
            "'PPN'",
            "'photo'",
            "'CyncStatus'"};

    Cursor cursor=null;

    try {
        cursor = db.query("student",columns,null, null,null,null,null);


    } catch (Exception e) {
        // TODO Auto-generated catch block
        Log.d("select student failed:  %d", e.toString());
    }


return cursor;


}

这就是我遍历结果的方式

Cursor c1 = studentHelperAdapter.getAllStudent();


c1.moveToFirst();
while (!c1.isAfterLast()){

String reg = c1.getString(1); // return column name not value
String name = c1.getString(4); //return name column  not value
String reg = c1.getString(5); //return name column not value


c1.moveToNext();
} 

c1.close();  

我试图在下面添加这一行来查看游标内容,我意识到没有数据被提取只有列名

Log.d("AB cursor ",android.database.DatabaseUtils.dumpCursorToString(c1));

无论如何,有两个类似的问题,但没有一个解决方案解决了我的问题

Get the field value with a Cursor

How to get field value instead of column name?

我期待在这里看到你的答案,谢谢

1 个答案:

答案 0 :(得分:4)

我认为你的列名应该只是字符串。

"reg_number" not "'reg_number'"

还要确保使用的是正确的类型。该值是否存储在" reg_number"列中?真的是一个字符串?