gpt4 book ai didi

android - 根据旧密码更新密码。 SQLite数据库安卓

转载 作者:行者123 更新时间:2023-11-30 05:11:04 25 4
gpt4 key购买 nike

我正在尝试根据保存在 SQLite 数据库中的旧密码更改/更新密码,但它不起作用

这是模型类:

public class SyncDownPasswordsTable {

public static final String SYNCDOWN_PASSWORDS_TABLE_NAME = "SyncDownPasswordsTable";
public static final String KEY_USER_ID = "userId";
public static final String KEY_PASSWORD = "password";

private String userId , password;

public SyncDownPasswordsTable(String userId, String password) {
this.userId = userId;
this.password = password;
}

public SyncDownPasswordsTable() {
}

public String getUserId() {
return userId;
}

public void setUserId(String userId) {
this.userId = userId;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}

public static String CreateSyncDownPasswordTable = "CREATE TABLE IF NOT EXISTS " + SYNCDOWN_PASSWORDS_TABLE_NAME + " ( " +
" " + KEY_USER_ID + " integer primary key AUTOINCREMENT," +
" " + KEY_PASSWORD + " text" + ")";
}

和数据库处理程序类中的方法。

public int updateSyncDownPassword(SyncDownPasswordsTable synDPTable) {
SQLiteDatabase db = this.getWritableDatabase();

ContentValues values = new ContentValues();
values.put(SyncDownPasswordsTable.KEY_PASSWORD, synDPTable.getPassword());

// updating row
return db.update(SyncDownPasswordsTable.SYNCDOWN_PASSWORDS_TABLE_NAME, values, SyncDownPasswordsTable.KEY_USER_ID + " = ?",
new String[]{String.valueOf(synDPTable.getUserId())});
}

和更新密码对话框中的方法调用。

if (v == updateButton) {
if (!(oldPass.equals(savedPass) && newPass.equals(confirmPass))) {

toast = Toast.makeText(getContext(), "Passwords didn't match , check Again", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
oldPassword.setText("");
newPassword.setText("");
confirmPassword.setText("");
} else {

SyncDownPasswordsTable syncDownPasswordsTable = new SyncDownPasswordsTable();
syncDownPasswordsTable.setUserId(syncDownPasswordsTable.getUserId());
syncDownPasswordsTable.setPassword(newPass);
int update = dbHandler.updateSyncDownPassword(syncDownPasswordsTable);

if (update > 0) {
toast = Toast.makeText(getContext(), "Password Updated Successfully .", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
dismiss();
} else {
toast = Toast.makeText(getContext(), "Error Occured", Toast.LENGTH_SHORT);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
dismiss();
}
}
} else {
dismiss();

最佳答案

我相信您获取/传递的用户 ID 为“”,而不是当前用户 ID。

也就是

SyncDownPasswordsTable syncDownPasswordsTable = new SyncDownPasswordsTable();

创建一个新的 SyncDownPasswordsTable 对象,没有设置任何值/属性。

然后是

syncDownPasswordsTable.setUserId(syncDownPasswordsTable.getUserId());

它将用户 ID 设置为现有的未设置用户 ID,如 syncDownPasswordsTable.getUserId();

所获得

简而言之,它对值没有任何作用。

所以你需要按照以下方式做一些事情:-

syncDownPasswordsTable.setUserId(a_valid_existing_current_userid);

a_valid_existing_current_userid 是您要更新的用户 ID。

关于android - 根据旧密码更新密码。 SQLite数据库安卓,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53736484/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com