如何从sqlite数据库中获取user_id?
我有一个像这样创建的用户表(只有一个简单):
private static final String CREATE_TABLE_USER =
"CREATE TABLE " + TABLE_USER +
"("+
COLUMN_USER_ID + " integer primary key autoincrement," +
COLUMN_USER + " TEXT NOT NULL, " +
COLUMN_PASSWORD + " TEXT NOT NULL" +
");";
我希望在整个应用程序中获取用户的信息(使用共享首选项)。
在我的登录页面中,我只有2个textField:用户名和密码。我可以将这些值保存为变量,并将它们放在我的createSession(String name,String email,Long userId)方法中。但是,由于我没有user_id文本字段,我无法获取createSession()方法所需的user_id ..
public void createSession(String name, String email, Long userId){
// Storing name in pref
editor.putString(KEY_NAME, name);
// Storing password in pref
editor.putString(KEY_PASSWORD, email);
//Storing user id in pref
editor.putLong(KEY_ID, userId);
// commit changes
editor.commit();
}
我尝试进行查询以接收ID,并将其返回到登录页面(将放在createSession()方法中)
public Long getUserId(String username, String password) throws SQLException
{
Cursor mCursor = database.rawQuery("SELECT user_id FROM user WHERE username=? AND password=?", new String[]{username,password});
if (mCursor != null) {
if(mCursor.getCount() > 0)
{
Long userId = mCursor.getLong(1);
}
}
return null;
}
但它不会为我取得userId ..有人建议为什么会这样?
答案 0 :(得分:0)
您忘了将光标移动到第一条记录。现在它指向记录 -1 。
所以改变这个
if (mCursor != null) {
到这个
if (mCursor != null && mCursor.moveToFirst()) {
而且......列 1 不存在。
更改
Long userId = mCursor.getLong(1);
到
Long userId = mCursor.getLong(0);