SQL select查询返回列的名称

时间:2014-02-13 06:23:05

标签: android select android-sqlite

我有一个表,用于存储用户的ID(col_id),Name(col_name)和Username(用户名)。下面是我用来检索数据的代码

public HashMap<String, String> getUserDetails(){

    HashMap<String, String> user = new HashMap<String, String>();
    String selectQuery = "SELECT * FROM " + TABLE_COL_DATA;

    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.rawQuery(selectQuery, null);

    cursor.moveToFirst();
    if(cursor.getCount() > 0){
        user.put("col_id", KEY_ID);
        user.put("name", KEY_NAME);
        user.put("username", KEY_USERNAME); 
    }

    return user;
}

但是当我记录检索数据时,它会显示col_id,col_name和username而不是实际添加的数据。

这是我获取数据并记录的方式

dbHandler.setCollectorTable(colID, colName, username);
HashMap<String, String> tmpMap = dbHandler.getUserDetails();
Log.d("Retrieved Col ID", tmpMap.get(KEY_COL_ID));
Log.d("Retrieved Col Name", tmpMap.get("name"));
Log.d("Retrieved Col Username", tmpMap.get("username"));

1 个答案:

答案 0 :(得分:3)

您希望首先从光标获取数据。然后尝试将数据放入HashMap,如下所示:

 if(cursor.getCount() > 0){
    user.put("col_id", cursor.getInt(0));
    user.put("name",cursor.getstring(1));
    user.put("username", cursor.getstring(2)); 
}

转到Cursor。有许多方法可用于从光标获取数据。