Ich habe eine Klasse geschrieben, die ich das Passwort des Benutzers ändern möchte. Ich habe alles gut eingerichtet abgesehen von der Tatsache, dass es keine solche Spalte sagt, obwohl ich Daten in die Datenbank eingegeben habe, die es entspricht, und "C3438525" wird für die Anmeldung verwendet (die erfolgreich funktioniert, zeigt es in der Datenbank gut)Passwort ändern - SQLite-Datenbank aktualisieren - keine solche Spalte
ich mehrere verschiedene Formate von SQL-Anweisung aber keine Ergebnisse
Hier verwenden versucht haben, ist die Klasse, wenn alle anderen benötigt werden, wenden Sie sich bitte und ich werde sie einfügen.
changePassword.java
public class changePassword extends Activity {
SQLiteDatabase checkDB;
DB db = new DB(this);
//Load session name
String sessionName;
String sessionPassword;
String currentPasswordString;
String newPassword1String;
String newPassword2String;
//Load text fields
EditText currentPassword;
EditText newPassword1;
EditText newPassword2;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.changepassword);
Button changePassword = (Button)findViewById(R.id.changePasswordButton);
//Load session name
SharedPreferences preferences = getSharedPreferences("temp", getApplicationContext().MODE_PRIVATE);
sessionName = preferences.getString("sessionName", "");
sessionPassword = preferences.getString("sessionPassword", "");
currentPassword = (EditText)findViewById(R.id.currentPassword);
newPassword1 = (EditText)findViewById(R.id.newpassword1);
newPassword2 = (EditText)findViewById(R.id.newpassword2);
}
//Mismatched password checking
public void updatePassword(View v)
{
currentPasswordString = currentPassword.getText().toString();
newPassword1String = newPassword1.getText().toString();
newPassword2String = newPassword2.getText().toString();
Toast.makeText(changePassword.this, sessionName.toString(), Toast.LENGTH_LONG).show();
Toast.makeText(changePassword.this, newPassword2String.toString(), Toast.LENGTH_LONG).show();
if (currentPasswordString.equals(sessionPassword))
{
if (newPassword1String.equals(newPassword2String))
{
checkDB = db.getWritableDatabase();
checkDB.execSQL("UPDATE Students SET Student_Password=" + newPassword2String + " WHERE CNumber= " + sessionName);
Log.d("Password", "Changed");
}
}
}
LogCat:
04-09 10:40:23.895: E/AndroidRuntime(2144): FATAL EXCEPTION: main
04-09 10:40:23.895: E/AndroidRuntime(2144): Process: com.example.project, PID: 2144
04-09 10:40:23.895: E/AndroidRuntime(2144): java.lang.IllegalStateException: Could not execute method of the activity
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.view.View$1.onClick(View.java:3823)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.view.View.performClick(View.java:4438)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.view.View$PerformClick.run(View.java:18422)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.os.Handler.handleCallback(Handler.java:733)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.os.Handler.dispatchMessage(Handler.java:95)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.os.Looper.loop(Looper.java:136)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.app.ActivityThread.main(ActivityThread.java:5001)
04-09 10:40:23.895: E/AndroidRuntime(2144): at java.lang.reflect.Method.invokeNative(Native Method)
04-09 10:40:23.895: E/AndroidRuntime(2144): at java.lang.reflect.Method.invoke(Method.java:515)
04-09 10:40:23.895: E/AndroidRuntime(2144): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
04-09 10:40:23.895: E/AndroidRuntime(2144): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
04-09 10:40:23.895: E/AndroidRuntime(2144): at dalvik.system.NativeStart.main(Native Method)
04-09 10:40:23.895: E/AndroidRuntime(2144): Caused by: java.lang.reflect.InvocationTargetException
04-09 10:40:23.895: E/AndroidRuntime(2144): at java.lang.reflect.Method.invokeNative(Native Method)
04-09 10:40:23.895: E/AndroidRuntime(2144): at java.lang.reflect.Method.invoke(Method.java:515)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.view.View$1.onClick(View.java:3818)
04-09 10:40:23.895: E/AndroidRuntime(2144): ... 11 more
04-09 10:40:23.895: E/AndroidRuntime(2144): Caused by: android.database.sqlite.SQLiteException: no such column: C3438525 (code 1): , while compiling: UPDATE Students SET Student_Password=1234 WHERE CNumber=C3438525
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteConnection.nativePrepareStatement(Native Method)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteConnection.acquirePreparedStatement(SQLiteConnection.java:889)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteConnection.prepare(SQLiteConnection.java:500)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteSession.prepare(SQLiteSession.java:588)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:58)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteStatement.<init>(SQLiteStatement.java:31)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteDatabase.executeSql(SQLiteDatabase.java:1672)
04-09 10:40:23.895: E/AndroidRuntime(2144): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1603)
04-09 10:40:23.895: E/AndroidRuntime(2144): at com.example.project.changePassword.updatePassword(changePassword.java:64)
04-09 10:40:23.895: E/AndroidRuntime(2144): ... 14 more
Set '..' um die session in der UPDATE-Anweisung –
Und auch um 'newPassword2String' –
Haben Sie versucht, wieder zu deinstallieren? – Rasel