c# Access数据库更新查询不工作

本文关键字:工作 查询 更新 Access 数据库 | 更新日期: 2023-09-27 17:53:18

我正在尝试用下面指出的代码更新访问表。但是,更新不会执行。它没有给我任何错误,但它不更新数据库。有什么建议吗?

string Const = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=F:''Db''test.accdb";      
OleDbCommand Cmd;
OleDbConnection con22 = new OleDbConnection(Const );
con22.Open();
string sql = "UPDATE CostT SET tFormSent='" + Selection1.Text + "',TName='" + UserName.Text + "',FormDate='" + FormDate.Text + "',where ReqNum=" + ReqNum.Text;
cmd = new OleDbCommand(sql, con22);
cmd.ExecuteNonQuery();
con22.Close();
MessageBox.Show("Form has been Updated");

c# Access数据库更新查询不工作

尝试更改查询

string sql = "UPDATE CostT SET tFormSent = @selection1,TName = @UserName,FormDate = @FormDate where ReqNum = @ReqNum";
cmd = new OleDbCommand(sql, con22);
cmd.Parameters.Add("@selection1", Selection1.Text);
cmd.Parameters.Add("@UserName", UserName.Text);
cmd.Parameters.Add("@FromDate", FromDate.Text);
cmd.Parameters.Add("@ReqNum", ReqNum.Text);
cmd.ExecuteNonQuery();
con22.Close();

您的查询有语法错误:您的WHERE子句之前有一个逗号,该子句不属于该子句。

但更重要的是:你的代码是开放的SQL注入!请不要直接在查询中插入用户输入,而是使用参数化查询!