使用C#和Access更新查询时出现奇怪的行为

时间:2013-04-01 15:50:51

标签: c# sql ms-access

我遇到一个奇怪的问题,当我尝试运行以下代码来更新访问数据库中的记录时。

string updateQuery = "UPDATE Employee SET Employee_name = @name, Employee_desig = @designation, Employee_salary = @salary, Employee_phone = @phone, Employee_mobile = @mobile, Employee_email = @email, Employee_status = @status WHERE (((Employee_id)=@empId));";

dbCmd.CommandText = updateQuery;

dbCmd.Parameters.AddWithValue("@designation", designation);
dbCmd.Parameters.AddWithValue("@email", email);
dbCmd.Parameters.AddWithValue("@mobile", mobile);
dbCmd.Parameters.AddWithValue("@name", name);
dbCmd.Parameters.AddWithValue("@phone", phone);
dbCmd.Parameters.AddWithValue("@salary", salary);
dbCmd.Parameters.AddWithValue("@status", status);
dbCmd.Parameters.AddWithValue("@empId", employeeId);

dbCmd.ExecuteNonQuery();

ExecuteNonQuery()返回1.但是当我签入db时,输入会在不同的列中更新。

screenshot access db

输入值

designation="Manager"
email="e"
mobile="2"
name="n"
phone="1"
salary=10.0
status="Active"
employeeId=3

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

在ACE OLEDB的上下文中,将忽略参数名称,并且必须按照它们在SQL语句中出现的顺序定义参数。