据我所研究,有两种方法可以更新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的新手,无法解决问题。 感谢所有帮助。
答案 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消息。