2013-12-20 42 views
0

我有sqlite数据库处理程序,将在用户登录到应用程序时创建一个表。服务器发回一些关于作为商店的用户的信息。当用户转到下一个活动时,我需要从该数据库中检索一个值,并将其存储在本地。我不确定如何检索值5并将其存储在活动OnCreate中。任何帮助将不胜感激。从数据库sqlite检索值

数据库处理程序:

public HashMap<String, String> retrieveUser(){ 
    HashMap<String,String> user = new HashMap<String,String>(); 
    String selectQuery = "SELECT * FROM " + TABLE_LOGIN; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    // Move to first row 
    cursor.moveToFirst(); 
    if(cursor.getCount() > 0){ 
     user.put("first_name", cursor.getString(1)); 
     user.put("last_name", cursor.getString(2)); 
     user.put("email", cursor.getString(3)); 
     user.put("dob", cursor.getString(4)); 
     user.put("userid", cursor.getString(5)); 
     user.put("created_at", cursor.getString(6)); 
    } 
    cursor.close(); 
    db.close(); 
    // return user 
    return user; 
} 

编辑:我解决了它这种方式

dbh = new DatabaseHandler(this); 
HashMap<String, String> details = dbh.retrieveUser(); 
    String UserId = details.get("userid"); 
+0

首先阅读SQLite数据库的简单的概念,这里是参考链接http://chintankhetiya.wordpress.com/2013/06/01/sqlite-database-example/ –

+1

你是什么意思'怎么找回值5并存储它?你想只检索5条记录吗? – GrIsHu

+0

我的意思是只检索user.put(“userid”,cursor.getString(5)); – Carbongixxer

回答

1

如果你想在userid列retreive从表中则仅quering为userid如下尝试。

public HashMap<String, String> retrieveUser(){ 
    HashMap<String,String> user = new HashMap<String,String>(); 
    String selectQuery = "SELECT userid FROM " + TABLE_LOGIN; 

    SQLiteDatabase db = this.getReadableDatabase(); 
    Cursor cursor = db.rawQuery(selectQuery, null); 
    // Move to first row 
    cursor.moveToFirst(); 
    while(cursor.getCount() > 0){ 
     user.put("userid", cursor.getString(0)); 
     cursor.moveToNext(); 
     user.add("userVal",cursor.getString(0)); 
     } 
    cursor.close(); 
    db.close(); 

    return user; 
}