試圖做一個基本的登錄活動,但我仍然是相當新的這一切。 我在數據庫中有一個用戶名和密碼(我將添加功能來快速添加更多用戶)。我想要的是,當他們鍵入他們的用戶名和密碼時,它會檢查數據庫中是否存在該對,如果是這樣,則返回true,否則返回false。如何檢查用戶名和密碼是否在數據庫SQLite中?
因此,這是在我的DB連接器
public boolean checkLogin(String username, String password) {
SQLiteDatabase db = md.getWritableDatabase();
String s;
Cursor c = db.rawQuery("SELECT * FROM MyTable WHERE " + username + " =? AND" + password + " =?", null);
if(c.getCount() <= 0) {
c.close();
db.close();
return false;
} else {
c.close();
db.close();
return true;
}
}
這是該代碼被稱爲 - 在我的主要活動
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Boolean validUser = myDB.checkLogin(username.getText().toString(), password.getText().toString());
if(validUser == true) {
Intent i = new Intent(getApplicationContext(), DBTest.class);
startActivity(i);
} else {
Toast.makeText(getApplicationContext(), "Invalid login", Toast.LENGTH_SHORT).show();
}
}
});
以下是錯誤。從我知道什麼是語法錯誤,但我也不太清楚如何去修改它
04-05 19:08:46.536 11313-11313/com.example.c1641195.testproject E/SQLiteLog:(1 )在「AND1234」附近:語法錯誤 04-05 19:08:46.536 11313-11313/com.example.c1641195.testproject D/AndroidRuntime:關閉VM 04-05 19:08:46.536 11313-11313/com。 example.c1641195.testproject E/AndroidRuntime:FATAL EXCEPTION:main 進程:com.example.c1641195.testproject,PID:11313 android.database.sqlite.SQLiteException:接近「AND1234」:語法錯誤(代碼1):,while編譯:SELECT * FROM歷史WHERE Admin =? AND1234 =? 在android.database.sqlite.SQLiteConnection.nativePrepareStatement(本機方法) 在android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:887) 在android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:498 ) at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588) at android.database.sqlite.SQLiteProgram。(SQLiteProgram.java:58) at android.database.sqlite.SQLiteQuery。(SQLiteQuery.java :37) at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44) at android.database.sqlite.S QLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1316) 在android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1255) 在com.example.c1641195.testproject.MyDBConnector.checkLogin(MyDBConnector.java:66) 在com.example.c1641195.testproject.MainActivity $ 1.onClick(MainActivity.java:30) at android.view.View.performClick(View.java:5198) at android.view.View $ PerformClick.run(View.java :21147) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148 )(Native Method) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java) :726) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)