我有这个应用程序,使用他们登录的用户名从数据库中获取用户数据。用户名一旦登录到检索其帐户信息的页面就会被传递。该应用程序崩溃说检索信息是错误的,任何人都可以帮忙吗?
数据库代码
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);
答案 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();