2

sReturn私は C# でこのコードを持っており、コードの出力パラメーターとして文字列を使用したいと考えています。

var sReturn = new SqlParameter();
sReturn.ParameterName = "@Return";
sReturn.SqlDbType = SqlDbType.VarChar;
sReturn.Size = 300;
sReturn.Direction = ParameterDirection.Output;

string query = "exec @Return = sqlServerProcedure @id, @dateBegin, @dateEnd";

_context.Database.CommandTimeout = timeout;
_context.Database.ExecuteSqlCommand
            (query, sReturn,
                new SqlParameter("@id", id),
                new SqlParameter("@dateBegin", dateBegin),
                new SqlParameter("@dateEnd", dateEnd) );
 return sReturn.Value;

sReturnは常に 0 を返します。

手順は次のようなものです。

CREATE PROCEDURE [dbo].sqlServerProcedure 
     (@dateBegin DATETIME,
      @dateEnd DATETIME,
      @id NUMERIC)
AS
BEGIN
    SELECT 'some random message'
END

常に 0 を返すのはなぜですか?

4

3 に答える 3