我有一個記憶體中的 SQLite DB,并在運行時創建了一個帶有 ID、用戶名和密碼的行。該插入回傳 1。
之后,我運行以下函式來檢查創建用戶的用戶憑據與輸入欄位中的用戶憑據,這些憑據與上面創建的用戶使用的憑據完全相同。(基本上,我檢查用戶是否已經存在,如果不存在,我使用輸入的憑據創建用戶并立即檢查以驗證登錄)
最后的 getCount 總是回傳 0,我不知道為什么。除錯器顯示用戶名和密碼的正確憑據,我開始沒時間了......期末考試專案......
public boolean checkUser(String username, String password) {
String[] columns = new String[]{
COL_USERNAME,
COL_PASSWORD
};
SQLiteDatabase db = this.getReadableDatabase();
String selection = COL_USERNAME " = ?" " AND " COL_PASSWORD " = ?";
String[] selectionArgs = {username, password};
Cursor c = db.query(
T_USER,
columns,
selection,
selectionArgs,
null,
null,
null);
int cursorCount = c.getCount();
c.close();
db.close();
if (cursorCount > 0) {
return true;
}
return false;
}
uj5u.com熱心網友回復:
記憶體資料庫只有在您打開資料庫時才有效。要么切換到基于檔案的資料庫,要么保留一個對SQLiteDatabase周圍的參考而不呼叫close()它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/422015.html
標籤:
