用LOG把查询数据显示出来
显示的是中文但是在模拟器上,只有MAINID=1 的时候是中文
其他都是 NULL NULL

解决方案 »

  1.   

    贴一点查询的代码吧,怀疑是Cursor的用法有问题.......
      

  2.   


               Map<Integer, String>  datamap = new HashMap<Integer, String>();
    Cursor cursor = sqldb.query("PRO_LIST", new String[] {
    "PRO_ID", "PRO_NAME", "PRO_PRICE" },
    "PRO_MAINID=?",
    new String[] { String.valueOf(2) }, null, null, "PRO_ID");
    cursor.moveToFirst();

    while(cursor.moveToNext()){
    name = cursor.getString(cursor.getColumnIndex("PRODUCT_NAME"));
    id = cursor.getInt(cursor.getColumnIndex("PRODUCT_ID"));
    Log.d("haha", name);
    datamap.put(id, name);
    }log  在eclipse 里显示中文都正常的
    但是在模拟器里只有查询语句where条件是 pro_mainid=1
    的时候才有中文显示
    是其他id的时候  都是NULL
      

  3.   


               Map<Integer, String>  datamap = new HashMap<Integer, String>();
    Cursor cursor = sqldb.query("PRO_LIST", new String[] {
    "PRO_ID", "PRO_NAME", "PRO_PRICE" },
    "PRO_MAINID=?",
    new String[] { String.valueOf(2) }, null, null, "PRO_ID");
    cursor.moveToFirst();

    while(cursor.moveToNext()){
    name = cursor.getString(cursor.getColumnIndex("PRO_NAME"));
    id = cursor.getInt(cursor.getColumnIndex("PRO_ID"));
    Log.d("haha", name);
    datamap.put(id, name);
    }ID 跟 NAME 都初始化了
      

  4.   


    private void logList(int id){
         SQLiteDatabase db = dbh.getReadableDatabase();;
         Cursor cursor = db.rawQuery("select PRO_ID,PRO_NAME,PRO_PRICE,PRO_MAINID where PRO_MAINID="+id, null);
         while(cursor.moveToNext()){
         Log.d("", "~~~~~~~~~"+cursor.getString(cursor.getColumnIndex("PRO_NAME")));
         }
        }
    试试这个看看   会不会sqlite对 select * 支持不太好呢