我使用以下代码来检索记录:
String getCredentialsFromAdmint(String name ,String pwd) {
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_ADMIN, new String[] { KEY_ID,
KEY_A_USER_NAME, KEY_A_PWD }, KEY_A_USER_NAME + "=?" + " AND " + KEY_A_PWD + "=?",
new String[] { name , pwd }, null, null, null, null);
if (cursor != null){
cursor.moveToFirst();
return cursor.getString(1);
}
else{
return "norecord";
}
如果有记录但是如果没有找到记录,则此代码有效,然后应用程序出错。 有没有其他方法可以从数据库中检索数据?
答案 0 :(得分:1)
将您的代码更改为以下
if ( cursor.moveToFirst()){
return cursor.getString(1);
} else{
return "norecord";
}
答案 1 :(得分:0)
您不检查cursor.moveToFirst()
是否返回true;
看起来应该是这样的:
if (cursor != null) {
if(cursor.moveToFirst()){
return cursor.getString(cursor.getColumnIndexOrThrow(KEY_A_USER_NAME));
} else{
//no record
}
} else {
//invalid uri
}
答案 2 :(得分:0)
尝试使用以下代码
if (cursor != null){
cursor.moveToFirst();
if(cursor.isAfterLast() == false) {
return cursor.getString(1);
}
else
{
return "norecord";
}
}
else{
return "norecord";
}