public int getUserCred(User user){
database = opener.getReadableDatabase();
String first = user.getFirst();
String pass = user.getPassword();
String[] cols = {COL_FIRST, COL_PASS};
userCursor = database.query(TABLE_USER, cols, null, null, null, null, null);
if(userCursor != null & userCursor.moveToFirst()) {
String firstName = userCursor.getString(userCursor.getColumnIndex(COL_FIRST));
String password = userCursor.getString(userCursor.getColumnIndex(COL_PASS));
if(first.equals(firstName) & pass.equals(password)){
return User.CRED_CORRECT;
}
}
database.close();
userCursor.close();
return User.CRED_INCORRECT;
}
這是我的代碼,因爲它是現在,雖然illegalStateException
不斷向我拋出,說它不能訪問第0行col -1。現在我知道其實數據保存在光標中,因爲cursor.getString(0)
和cursor.getString(1)
正在返回數據,但使用cursor.getColumnIndex(COL_(FIRST/PASS))
會不斷提高異常。任何想法爲什麼我的getColumnIndex()通過android返回-1?
有人請向我解釋爲什麼這樣對我?最初我在一個接口中保存了所有SQLite模式語句,這是我認爲是由於某種原因導致問題的原因,但是將它們放入嵌套類中引發了相同的異常,所以我決定在SQLiteOpenHelper子類中將它們變爲類變量。但是,這仍然沒有改變我的情況getColumnIndex()
。 所以如果有人能指出我正確的方向,我會非常感激!
「COL_FIRST」和「COL_PASS」的值是什麼? – dave
@dave COL_FIRST =「FIRSTNAME」COL_PASS =「PASSWORD」;與領先的空白。 – 3alto
你能列出TABLE_USER表中的列名嗎?看起來'COL_FIRST'和'COL_PASS'不匹配表中的那些列。 – shhp