我有一个MySql存储过程,定义如下:
PROCEDURE `updateClient`(IN firstname varchar(45), IN lastname varchar(45)...
我正在像这样从C#调用此proc:
using MySql.Data.MySqlClient;
...
MySqlCommand cmd = new MySqlCommand("updateClients", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("firstname", "John");
cmd.Parameters.AddWithValue("lastname", "Doe");
cmd.ExecuteNonQuery();
这可以正常工作,但是如果我在将参数添加到C#中的命令时转置参数的顺序,以使它们的添加顺序与proc期望的顺序不同:
cmd.Parameters.AddWithValue("lastname", "Doe");
cmd.Parameters.AddWithValue("firstname", "John");
然后,当我输入的参数到达proc时,我会在它们中输入错误的值(即-firstname =“ Doe”和lastname =“ John”)
这对我来说很奇怪,因为我期望C#命令参数仅映射到MySql端上的已命名对应参数。使用MS-SQL,将参数添加到命令的顺序无关紧要。 MySql是否不是这种情况,还是我还缺少其他东西?谢谢