Kullanıcının parolasını değiştirmek istediğim bir sınıf yazdım. Ben bu veriyi veri tabanına girdiğim halde, böyle bir sütun yazmam gerekmiyor, ve giriş için 'C3438525' kullanılıyor. herhangi diğerleri isteyiniz ihtiyaç vardır ve onları yapıştırmak edeceğiz varsa)Parolayı Değiştirme - SQLite Veritabanını Güncelleştirin - Böyle Bir Sütun Yok
birkaç farklı SQL deyiminin biçimlerini ancak hiçbir sonuç İşte kullanarak denedimsınıfıdır.
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
UPDATE deyimi –
yılında SessionName etrafında Seti '..' Ve etrafında 'newPassword2String' –
tekrar kaldırmayı denedin mi? – Rasel