使用 UPDATE 查询更新 OLEDB 数据库

Updating OLEDB Database using UPDATE Query

我已经编辑了这个问题以防止问到另一个问题。我正在尝试使用 UPDATE 查询和参数更新 MS Access 中的数据表。该代码没有报错并且运行良好,但它没有保存更新的数据,我不知道为什么。

这是我正在使用的代码:

if (Editing)
        {                
            string Query = "UPDATE [Employee] SET PayrollNo=@PayrollNo, FirstName=@FirstName, LastName=@LastName, AnnualHolidayEntitlement=@AnnualHolidayEntitlement, DaysTakenToDate=@DaysTakenToDate WHERE PayrollNo = @SentPayroll"; 
            string ConnString = "Provider = Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\HoliPlanData.accdb;Persist Security Info=False";
            using (OleDbConnection conn = new OleDbConnection(ConnString))
            using (OleDbCommand UpdateEmployee = new OleDbCommand(Query, conn))
            {                
                conn.Open();
                UpdateEmployee.Parameters.AddWithValue("@SentPayroll", OleDbType.Integer).Value = Convert.ToInt32(PassPayrollNo);
                UpdateEmployee.Parameters.AddWithValue("@PayrollNo", OleDbType.Integer).Value = Convert.ToInt32(TxtPayrollNo.Text);
                UpdateEmployee.Parameters.AddWithValue("@FirstName", OleDbType.VarChar).Value = TxtFirstName.Text;
                UpdateEmployee.Parameters.AddWithValue("@LastName", OleDbType.VarChar).Value = TxtLastName.Text;
                UpdateEmployee.Parameters.AddWithValue("@AnnualHolidayEntitlement", OleDbType.Integer).Value = Convert.ToInt32(TxtAHE.Text);
                UpdateEmployee.Parameters.AddWithValue("@DaysTakenToDate", OleDbType.Integer).Value = Convert.ToInt32(TxtDTTD.Text);
                UpdateEmployee.ExecuteScalar();
                BtnSubmit.Enabled = false;
                MessageBox.Show("Data Edited Successfully");
            }

如何更改此代码以使其正常工作?提前致谢。

EDIT/ANSWER。 我不知道,如果您遇到更新查询的问题,您可能也不知道。添加参数时,您需要按照在查询中调用它们的顺序添加它们。在我的代码中,第一个参数应该最后添加,因为它在 stringQuery 中是最后一个。我移动了它,它运行良好!

Why does invoking my UPDATE query in an Access database via OleDb not work?

如果其他人遇到更新查询的这个问题,我花了很长时间才找到这个问题,有人很好地解决了这个问题。