我最近将MySql.data升级到了最新版本(8.0.11)。
但是,当从.net执行存储过程时,参数名称将被忽略,并且参数将按照其在存储过程定义中的顺序进行操作。
因此,在这种情况下(以下),存储过程将pUserId值作为hashedDataBytes而不是UserId接收,这纯粹是因为它们是在.net代码中构造的顺序。
.net:
command.Parameters.Add(New MySqlParameter("pAccountId",MySqlDbType.Int32)).Value = Master.AccountId
command.Parameters.Add(New MySqlParameter("pPassword", MySqlDbType.Binary, 16)).Value = hashedDataBytes
command.Parameters.Add(New MySqlParameter("pUserId", MySqlDbType.Int32)).Value = UserId
存储过程定义:
CREATE PROCEDURE `HelpDesk`.`rUpdatePassword` (
IN pAccountId integer,
IN pUserId integer,
IN pPassword binary(16)
)
BEGIN
----continues