无法在sqlite数据库中找到值

时间:2016-07-17 13:41:21

标签: android cursor android-sqlite

我在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]

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 1tutorial 2.