简体   繁体   English

从sqlite数据库Android检索数据时捕获异常

[英]Catching exception when retrieving data from sqlite database Android

I have this on my DBHelper 我在DBHelper上有这个

public Cursor selectUser(String username){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor res = db.rawQuery("SELECT * FROM user_tbl WHERE username = '" +
            username+"'", null);
    return res;
}

And i also have this try-catch block on my Activity. 我的活动中也有这个try-catch块。

DBHelper mydb;
Cursor res;
user = LoginActivity.usernamee;        
    try{
                res = mydb.selectUser(user);
                if(res.getCount() > 0){
                    String fullnamee = res.getString(res.getColumnIndex(DBHelper.USER_NAME));
                    fullname.setText(fullnamee);
                    fullname.setFocusable(false);
                    fullname.setClickable(false);
                }

            }catch(Exception e){
                System.out.println("Error retrieving database record.");
            }

However, I am getting the catch exception. 但是,我收到了catch异常。 What I am trying to do is that, I would like to check my database where username is equal to LoginActivity.usernamee . 我想做的是,我想检查我的数据库,其中username等于LoginActivity.usernamee Then display the full name of the user from my database table to my Android text view. 然后从我的数据库表到我的Android文本视图显示用户的全名。

I would like to ask for assistance. 我想寻求帮助。 Thank you! 谢谢!

i think you are missing "moveToFirst" 我认为您缺少“ moveToFirst”

SQLiteDatabase db = this.getReadableDatabase();
Cursor res = db.rawQuery("SELECT * FROM user_tbl WHERE username = '" + username + "'", null);

if(res.getCount() > 0){
  res.moveToFirst();
  String fullnamee = res.getString(res.getColumnIndex(DBHelper.USER_NAME));
  // do what you want
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM