-2

以下のコードを実行して access db のレコードを更新しようとすると、奇妙な問題に直面しています。

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を返します。しかし、データベースをチェックインすると、入力は異なる列で更新されます。

スクリーンショット アクセス データベース

入力値は

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

どんな助けでも大歓迎です。

4

1 に答える 1

1

ACE OLEDB のコンテキストでは、パラメーター名は無視され、パラメーターは SQL ステートメントに現れるのと同じ順序で定義する必要があります。

于 2013-04-01T16:08:27.517 に答える