我在android中使用sqlite进行简单的登录/注册编码进行数据存储,数据库创建和数据插入很好但是我无法在用户登录帐户时找到价值,当我在sqlite中打开数据库时,浏览器数据存在但是在android游标中找不到它
public String serachContact(String srchn,String srchp)
{
db=getReadableDatabase();
String query="Select email,pswrd from ContactsInfo" ;
Cursor cursor=db.rawQuery(query,null);
String u ; // used for fetching email address
int c=0;
String p="not found";
if (cursor.moveToFirst())
do {
u = cursor.getString(0);
if (u.equals(srchn)) {
p = cursor.getString(1); // get password for matching
break;
}
}
while(cursor.moveToNext());
return p;
}
}[enter image description here][1]
答案 0 :(得分:0)
你的代码有点乱,你没有提到你得到的错误。
按照以下代码更改代码,使用getWritableDatabase
方法。
String email;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(query, null);
if (cursor.moveToFirst()) {
do {
email = cursor.getString(0);
Log.d("email is ", email);
if (email.equals(srchn)) {
return cursor.getString(1);
break;
}
}while (cursor.moveToNext());
}
最后使用cursor.close()
在finally方法中关闭光标以防止任何内存泄漏。
您还可以检查是否正确设置了sqlite,这里有两个教程tutorial 1和tutorial 2.