Android中的SQLite如何更新值

时间:2016-05-25 19:31:29

标签: android sqlite android-sqlite

据我所研究,有两种方法可以更新SQLite数据库

execSQL(String sql) method

或:

update(String table, ContentValues values, String whereClause, String[] whereArgs) method.

在我的应用中我使用update方法选项。

基本上我想实现忘记密码功能。此外,我已将用户名作为我在数据库中的主键,即没有两个用户可以拥有相同的用户名。因此,当用户点击忘记密码时,他输入正确的用户名,如果输入正确,则输入新密码,并在数据库中替换旧密码。

这是我定义的更新密码的方法

public void updateEntry(String userName, String password) {
    ContentValues updatedValues = new ContentValues();
    updatedValues.put("PASSWORD", password);

    String where = "USERNAME = ?";
    db.update("LOGIN", updatedValues, where, new String[] { userName });
}

这就是我调用updateEntry方法

的方法
 public void onClick(View v) {
            String userName=forgot_username.getText().toString();
            String funame=loginDataBaseAdapter.getUserName(userName);
            String password=forgot_password.getText().toString();
            if (userName.equals(funame)) {
                if (forgot_password.equals(forgot_confirmpassword)){
                    loginDataBaseAdapter.updateEntry(userName,password);
                }

                Toast.makeText(ForgotPasswordActivity.this,"success",Toast.LENGTH_SHORT).show();
            }else {
                Toast.makeText(ForgotPasswordActivity.this,"User Name is not correct",Toast.LENGTH_SHORT).show();

            }
        }

我是SQLite的新手,无法解决问题。 感谢所有帮助。

1 个答案:

答案 0 :(得分:0)

试试这个:

将此方法添加到LoginDataBaseAdapter

public boolean updateEntry(String userName, String password) {
  ContentValues args = new ContentValues();
  args.put("PASSWORD", password);
  return db.update("LOGIN", args, "USERNAME=" + userName, null) > 0;
}

更新您的onClick方法:

public void onClick(View v) {
    String userName = forgot_username.getText().toString();
    String funame = loginDataBaseAdapter.getUserName(userName);
    String password = forgot_password.getText().toString();
    if (userName.equals(funame)) {
        if (forgot_password.equals(forgot_confirmpassword)) {
            if (loginDataBaseAdapter.updateEntry(userName,password)) {
                Toast.makeText(ForgotPasswordActivity.this, "success", Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(ForgotPasswordActivity.this,"failed",Toast.LENGTH_SHORT).show();
            }
        }
    } else {
        Toast.makeText(ForgotPasswordActivity.this,"User Name is not correct",Toast.LENGTH_SHORT).show();
    }
}

告诉我们显示哪个Toast消息。