从C#调用MySql存储过程时参数顺序是否重要?

时间:2019-05-08 10:46:02

标签: c# mysql

我有一个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是否不是这种情况,还是我还缺少其他东西?谢谢

0 个答案:

没有答案