我在这里迷失了方向。
我正在尝试实现基本的“忘记密码?” 用户输入电子邮件地址以获取新密码的功能。很简单,对不对?
我的问题是更新数据库,将旧密码替换为新密码。我正在使用C#和MS Access。
这是更新代码:
public bool UpdateCustomer(Customer customer){
try {
if(con.State == ConnectionState.Closed)
con.Open();
string sql = "UPDATE CUSTOMERS SET password=? WHERE userid=?;";
OleDbCommand cmd = new OleDbCommand(sql, con);
cmd.Parameters.Add(new OleDbParameters("password", customer.Password));
cmd.Parameters.Add(new OleDbParameters("userid", customer.UserId));
cmd.ExecuteNonQuery();
return true;
}catch (Exception ex) {
}finally {
con.Close();
}
return false;
}
客户表包含以下栏:UserId
,Name
,Email
,Password
和CreatedDate
。
在调试try-catch时,抛出异常,表明UPDATE语句中存在语法错误。我已经做了一些反复试验password=?
,name=?
只是想看看它是否会更新,并且确实会更新客户名称!
的Name
和Password
列是,据我所看到的,与数据类型相同Text
。
可能是什么问题?
PASSWORD
是Access中的保留字。
尝试:
UPDATE CUSTOMERS SET [password]=? WHERE userid=?;
(插入关于以纯文本格式存储密码的常规注释是一个非常糟糕的主意)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句