rawQuerry数据光标显示空字段

时间:2014-01-26 04:16:28

标签: android android-sqlite

我尝试使用RawQuery方法从数据库中提取数据,但我似乎是空行...数据库中存在的数据,我试图拉动......可以任何人发现任何错误...

db = dbhelper.getReadableDatabase();

        String selectSQL = "Select * from " + Wish_list_Table.TABLE_NAME
                + " where " + Wish_list_Table.COL_CATEGORY + " = ?";

        String[] add = { " HOME" };

        TextView textView = getGenericView();
        Cursor selectdata = db.rawQuery(selectSQL, add);
        Log.i("select", "" + selectdata.getCount());

此类用于数据库表属性......

public static abstract class Wish_list_Table implements BaseColumns {
    public static final String TABLE_NAME = "WISH_LIST1";
    public static final String COL_NAME = "NAME";
    public static final String COL_TIME = "TIME";

    public static final String COL_DATE = "DATE";
    public static final String COL_CATEGORY = "CATEGORY";

    public static final String COL_DESC = "DESC";

}

这是DATABASE IMAGE ...

enter image description here

2 个答案:

答案 0 :(得分:1)

看看这个:

String[] add = { " HOME" };

难道你没有看到“HOME”之前有 SPACE 吗? 它永远不会匹配数据库中的值!

所以你总是得到一个空的光标 用以下代码替换该语句:

String[] add = { "HOME" };

你将获得所有CATEGORY等于'HOME'的记录

答案 1 :(得分:0)

尝试以下内容:

   String[] add = { "HOME" };

        String [] columns = {"NAME" , "CATEGORY"};


        Cursor cursor = db.query(Wish_list_Table.TABLE_NAME, columns,  Wish_list_Table.COL_CATEGORY + " = ?", add, null, null, null)

            while(cursor.moveToNext()){
                String name = cursor.getString(cursor.getColumnIndex(ArrayList_table.COL_NAME));
                textView.setText(name);
            }
            cursor.close();

但请确保数据库中的数据存在。