I'm trying to implement a database to store information about users for an Android app.
Here is a string:
private static final String DATABASE_CREATE =
"CREATE TABLE "
+ DATABASE_TABLE_USERS
+ "(" + KEY_ROW_ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ KEY_NAME
+ " TEXT NOT NULL,"
+ KEY_PASSWORD
+ " TEXT NOT NULL,"
+ KEY_LOGIN_ATTEMPTS
+ " INTEGER NOT NULL,"
+ KEY_ZIP + " TEXT,"
+ KEY_STREET + " TEXT," + KEY_EMAIL + " TEXT NOT NULL);";
I use this string to call db.execSQL(DATABASE_CREATE) in the OnCreate method.
I think this is where the error is occurring:
public boolean findPerson(String uid, String password) {
String [] columns = new String [] {DB_Helper.KEY_NAME, DB_Helper.KEY_PASSWORD};
Cursor c = database.query(DB_Helper.DATABASE_TABLE_USERS, columns,"KEY_PASSWORD = ? AND KEY_NAME = ?",
new String[] { password, uid },
null,
null,
null);
if(!c.moveToFirst()){
c.close();
return false;
}
else c.close();
return true;
}
I immediately get an exception that says I it cannot find the column KEY_PASSWORD.
Here is the log file:
02-25 21:20:56.426: D/MainActivity(2257): save button clicked
02-25 21:20:56.695: E/SQLiteLog(2257): (1) no such column: KEY_PASSWORD
02-25 21:20:56.695: D/AndroidRuntime(2257): Shutting down VM
02-25 21:20:56.705: W/dalvikvm(2257): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
02-25 21:20:56.775: E/AndroidRuntime(2257): FATAL EXCEPTION: main
02-25 21:20:56.775: E/AndroidRuntime(2257): java.lang.IllegalStateException: Could not execute method of the activity
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.view.View$1.onClick(View.java:3597)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.view.View.performClick(View.java:4202)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.view.View$PerformClick.run(View.java:17340)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.os.Handler.handleCallback(Handler.java:725)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.os.Handler.dispatchMessage(Handler.java:92)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.os.Looper.loop(Looper.java:137)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.app.ActivityThread.main(ActivityThread.java:5039)
02-25 21:20:56.775: E/AndroidRuntime(2257): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 21:20:56.775: E/AndroidRuntime(2257): at java.lang.reflect.Method.invoke(Method.java:511)
02-25 21:20:56.775: E/AndroidRuntime(2257): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-25 21:20:56.775: E/AndroidRuntime(2257): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-25 21:20:56.775: E/AndroidRuntime(2257): at dalvik.system.NativeStart.main(Native Method)
02-25 21:20:56.775: E/AndroidRuntime(2257): Caused by: java.lang.reflect.InvocationTargetException
02-25 21:20:56.775: E/AndroidRuntime(2257): at java.lang.reflect.Method.invokeNative(Native Method)
02-25 21:20:56.775: E/AndroidRuntime(2257): at java.lang.reflect.Method.invoke(Method.java:511)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.view.View$1.onClick(View.java:3592)
02-25 21:20:56.775: E/AndroidRuntime(2257): ... 11 more
02-25 21:20:56.775: E/AndroidRuntime(2257): Caused by: android.database.sqlite.SQLiteException: no such column: KEY_PASSWORD (code 1): , while compiling: SELECT id_name, id_password FROM reg_users_table WHERE KEY_PASSWORD = ? AND KEY_NAME = ?
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:882)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:493)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:58)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:37)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:44)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1161)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1032)
02-25 21:20:56.775: E/AndroidRuntime(2257): at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1200)
02-25 21:20:56.775: E/AndroidRuntime(2257): at com.example.wheresmystuff.Model.DB.findPerson(DB.java:57)
02-25 21:20:56.775: E/AndroidRuntime(2257): at com.example.wheresmystuff.Presenter.Login_Presenter.validate(Login_Presenter.java:26)
02-25 21:20:56.775: E/AndroidRuntime(2257): at com.example.wheresmystuff.View.MainActivity.save(MainActivity.java:48)
02-25 21:20:56.775: E/AndroidRuntime(2257): ... 14 more
Aucun commentaire:
Enregistrer un commentaire