更改密碼。任何人都可以幫助我獲得解決方案嗎?我想從表中更改密碼和我得到的錯誤從表
這裏是我的數據庫類代碼:
public boolean change(String answer, String newpassword) {
String sql = "UPDATE "+DATABASE_TABLE +" SET " + KEY_PASSWORD+ " = '"+newpassword+"' WHERE "+KEY_ANSWER+ " = "+answer;
Cursor cur=db.rawQuery(sql, null);
if (cur != null) {
if(cur.getCount() > 0)
{
return true;
}
}
return false;
}
這裏是我的Android代碼:
if(quest.change(answer, newpassword)){
Intent login=new Intent(forgot.this, securityLogin.class);
startActivity(login);
} else{
Toast.makeText(forgot.this, "wrong answer",Toast.LENGTH_SHORT).show();
}
這裏是我的logcat:
08-27 13:23:52.735: E/AndroidRuntime(464): FATAL EXCEPTION: main
08-27 13:23:52.735: E/AndroidRuntime(464): java.lang.IllegalStateException: database not open
08-27 13:23:52.735: E/AndroidRuntime(464): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1333)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1315)
08-27 13:23:52.735: E/AndroidRuntime(464): at com.inovawe.inwp.securityDB.change(securityDB.java:163)
08-27 13:23:52.735: E/AndroidRuntime(464): at com.inovawe.inwp.forgot$1.onClick(forgot.java:36)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.view.View.performClick(View.java:2408)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.view.View$PerformClick.run(View.java:8816)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.os.Handler.handleCallback(Handler.java:587)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.os.Handler.dispatchMessage(Handler.java:92)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.os.Looper.loop(Looper.java:123)
08-27 13:23:52.735: E/AndroidRuntime(464): at android.app.ActivityThread.main(ActivityThread.java:4627)
08-27 13:23:52.735: E/AndroidRuntime(464): at java.lang.reflect.Method.invokeNative(Native Method)
08-27 13:23:52.735: E/AndroidRuntime(464): at java.lang.reflect.Method.invoke(Method.java:521)
08-27 13:23:52.735: E/AndroidRuntime(464): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-27 13:23:52.735: E/AndroidRuntime(464): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-27 13:23:52.735: E/AndroidRuntime(464): at dalvik.system.NativeStart.main(Native Method)
我得到了答案,下面的代碼工作
rawQuery("UPDATE "+DATABASE_TABLE +" SET " + KEY_PASSWORD+ " = '"+newpassword+"' WHERE answer=?", new String[]{answer});
更新之前打開您的數據庫。 – rajeshwaran
你** **分貝變量爲NULL,該行'光標CUR = db.rawQuery(SQL,NULL);' – Lucifer