检索用户帐户

时间:2016-04-23 00:39:17

标签: java android sqlite

我有这个应用程序,使用他们登录的用户名从数据库中获取用户数据。用户名一旦登录到检索其帐户信息的页面就会被传递。该应用程序崩溃说检索信息是错误的,任何人都可以帮忙吗?

数据库代码

public Cursor RetriveLoggedUsersData (DatabasOpperations DBOpp, String Username){
    SQLiteDatabase SQDB = DBOpp.getReadableDatabase();
    String[] Coloumns = {TableData.TableInfo.FIRSTNAME, TableData.TableInfo.LASTNAME, TableData.TableInfo.EMAIL, TableData.TableInfo.USERNAME, TableData.TableInfo.PASSWORD, TableData.TableInfo.IMAGE};
    String Where = TableData.TableInfo.USERNAME + " LIKE ?";
    String Argument[] = {Username};
    Cursor Cur = SQDB.query(TableData.TableInfo.TABLE_NAME, Coloumns, Where, Argument, null, null, null);
    Log.d("DatabaseOperations", "Success, User Retrived");
    return Cur;
}

想要检索数据的代码

Username = getIntent().getExtras().getString("Username");

DatabasOpperations DB = new DatabasOpperations(Contx);
        Cursor Cur = DB.RetriveLoggedUsersData(DB, Username);
        DBFName = Cur.getString(0);
        DBLName = Cur.getString(1);
        DBEmail = Cur.getString(2);

1 个答案:

答案 0 :(得分:2)

您需要通过调用moveToFirst()将Cursor移动到第一个位置,并检查返回值以确保Cursor中至少有一行。还要确保关闭光标:

Cursor Cur = DB.RetriveLoggedUsersData(DB, Username);
if (Cur.moveToFirst()) {
    DBFName = Cur.getString(0);
    DBLName = Cur.getString(1);
    DBEmail = Cur.getString(2);
}
Cur.close();