【发布时间】:2021-07-18 13:02:48
【问题描述】:
我在 UPDATE 语句中遇到语法错误,同时在 C# 中更新 Access 数据库中的密码:
protected void Button1_Click(object sender, EventArgs e)
{
OleDbConnection con = new OleDbConnection();
con.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
Server.MapPath("~/Database/registration.accdb");
con.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;
cmd.CommandType = CommandType.Text;
cmd.CommandText =
"UPDATE into userdata(password)values('"+TextBox1.Text+"') where id=@id";
cmd.ExecuteNonQuery();
con.Close();
Response.Write("alert('Password Reset Successfully done');");
}
【问题讨论】:
-
那么,您的问题到底是什么?
-
语法错误在哪里?
-
你需要了解UPDATE SQL语句的语法...
UPDATE INTO是不正确的语法 -
而且,将密码存储在数据库中是完全不行的。永远不要存储未经哈希处理的密码(甚至未加密)。
-
请使用参数化查询 - 通过连接等方式构建 SQL 查询是灾难的根源。它不仅是许多难以调试的语法错误的来源,而且还是 SQL Injection attacks 的大门。
标签: c# visual-studio-2010 syntax-error ms-access-2010