簡體   English   中英

更新在sqlite android中不起作用

[英]UPDATE not working in sqlite android

我有一個登錄和重置密碼活動。 當我輸入新的更新密碼並嘗試再次登錄時,我無法使用新密碼進行登錄。 使用舊密碼登錄工作正常。 基本上,密碼字段不會被更新/覆蓋。

logcat 中沒有錯誤。 只是密碼沒有更新。

請幫助,因為我是 android 開發的新手。

更新代碼(DataRegister 是具有 GET AND SET 功能的類):

 public int updatePassword(DataRegister dataregister) {

  db = dbHelper.getWritableDatabase();

    ContentValues updated = new ContentValues();
    updated.put("PASSWORD", dataregister.getPASSWORD());

 return db.update(DataRegister.TABLE, updated, "EMAIL=?" , new String[]{email});


}

檢索代碼:

 public String getPass(DataRegister dataRegister) {

    db = dbHelper.getWritableDatabase();

    Cursor cursor = db.query(DataRegister.TABLE, null, "EMAIL=?",
            new String[]{dataRegister.getEMAIL()}, null, null, null, null);
    if (cursor != null && cursor.moveToFirst())

    {
        pass = cursor.getString(cursor.getColumnIndex("PASSWORD"));
        cursor.close();
    }
    return pass;


    // return contact


}

登錄代碼:

 String email = editTextUserName.getText().toString();
            dataRegister.setEMAIL(email);

            String password = editTextPassword.getText().toString();
            dataRegister.setPASSWORD(password);

            String storedPassword = loginDataBaseAdapter.getSinlgeEntry(dataRegister);

            Toast.makeText(Login.this, storedPassword,Toast.LENGTH_LONG).show();
            Boolean a=loginDataBaseAdapter.isExist(dataRegister.getEMAIL());
           validation = getSharedPreferences("myShaPreferences", Context.MODE_PRIVATE);

            if (password.equals(storedPassword)) {

                Toast.makeText(Login.this,
                        "Congrats: Login Successful", Toast.LENGTH_LONG)
                        .show();
            }

            else {

                    Toast.makeText(Login.this,
                            "User Name or Password does not match",
                            Toast.LENGTH_LONG).show();


                }



        }
    });

重置密碼的代碼:

public class ResetPassword extends AppCompatActivity {


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_reset_password);

    email = (EditText) findViewById(R.id.em2);
    dataRegister=new DataRegister();

    loginDataBaseAdapter = new DatabaseAdapter(this);
    loginDataBaseAdapter = loginDataBaseAdapter.open();



    pass = (EditText) findViewById(R.id.text12);
    conpass = (EditText) findViewById(R.id.text13);

    email1 = email.getText().toString();
    dataRegister.setEMAIL(email1);
    pass1 = pass.getText().toString();

    conpass1 = conpass.getText().toString();
    dataRegister.setPASSWORD(conpass1);

    Button btnReset = (Button) findViewById(R.id.btnReset);
    btnReset.setOnClickListener(new View.OnClickListener() {
        public void onClick(View view) {


            if (pass1.equals(conpass1)) {

             loginDataBaseAdapter.updatePassword(email1,pass1);
                String newpass = loginDataBaseAdapter.getPass(dataRegister);



                Toast.makeText(ResetPassword.this, newpass, Toast.LENGTH_LONG).show();
                Intent intent = new Intent(ResetPassword.this, Login.class);
                startActivity(intent);


                finish();

            }

            else {
                Toast.makeText(ResetPassword.this,
                        "Password does not match",
                        Toast.LENGTH_LONG).show();

            }


        }

    });

也許這可以幫助您更新數據:

  public void updating( Password password) {
        ContentValues value = new ContentValues();

        value.put( PasswordDAO.LOGIN, password.getlogin() );
        value.put( PasswordDAO.PASSWORD, password.getPassword());

        this.mDb.update( PasswordDAO.NAME_TABLE, value, PasswordDAO.ID + " = ?", new String[]{String.valueOf(password.getId())} );
    }

PasswordDao是繼承DAOBase的類名,NAME_TABLE是“Password”,需要創建一個id為login和password的類密碼。

希望這可以幫到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM