次のコードを使用します。
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 を返します。
それ以外の場合、ストアド プロシージャは正しい結果を返します。さらに、ストアド プロシージャをコンソールで直接実行すると、出力パラメーターも正しく返されます。
何か不足していますか?