使用以下代码:
MySqlParameter curParam = new MySqlParameter("var", MySqlDbType.Int32);
curParam.Direction = System.Data.ParameterDirection.Output;
oCmd.Parameters.Add(curParam);
使用以下存储过程:
CREATE PROCEDURE testProc(OUT var INT)
BEGIN
SELECT 1, 2, 3;
SELECT 27 INTO var;
END
$$
从控制台运行此命令将返回“27”:
CALL testProc(@i);
SELECT @i;
但是在.NET中,当执行查询时(当连接仍然打开时),curParam.value返回NULL。
否则存储过程将返回正确的结果。此外,在控制台中直接运行存储过程时,输出参数也会正确返回。
我错过了什么吗?
答案 0 :(得分:2)
输出参数。与获得参数值相比,您的代码何时执行阅读器?