2014-01-26 58 views
0

我尝试使用RawQuery方法从数据库中提取数据,但我似乎是空行...数据库中存在actully数据,我试图拉.......任何人发现任何错误....rawquerry数据光标显示空字段

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"; 

} 

这是数据库映像...

enter image description here

+0

你可以请出示你的数据库的一部分,其中的类家庭存在的记录?你确定HOME是否大写并注明家庭或家庭? –

回答

1

看看这个:

String[] add = { " HOME" }; 

君不见有一个SPACE “HOME” 过吗? 它永远不会匹配数据库中的值!

所以你总是会得到一个空的光标。
替换这一点,声明:

String[] add = { "HOME" }; 

,你会得到所有那些类别等于“家”

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

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

+0

still cursor.getcount();是显示0 .. – bhavdip

+0

任何方法来调试与数据库表.... plz..tell我 – bhavdip

+0

请告诉我你是如何创建你的表 –