Вызов хранимой процедуры с возвращаемым значением

Я пытаюсь вызвать хранимую процедуру из моего приложения Windows C #. Хранимая процедура выполняется на локальном экземпляре SQL Server 2008. Я могу вызвать хранимую процедуру, но не могу получить значение обратно из хранимой процедуры. Эта хранимая процедура должна возвращать следующее число в последовательности. Я провел исследование в Интернете, и все сайты, которые я видел, указали на то, что это решение работает.

Код хранимой процедуры:

ALTER procedure [dbo].[usp_GetNewSeqVal]
      @SeqName nvarchar(255)
as
begin
      declare @NewSeqVal int
      set NOCOUNT ON
      update AllSequences
      set @NewSeqVal = CurrVal = CurrVal+Incr
      where SeqName = @SeqName

      if @@rowcount = 0 begin
print 'Sequence does not exist'
            return
      end

      return @NewSeqVal
end

Код, вызывающий хранимую процедуру:

SqlConnection conn = new SqlConnection(getConnectionString());
conn.Open();

SqlCommand cmd = new SqlCommand(parameterStatement.getQuery(), conn);
cmd.CommandType = CommandType.StoredProcedure;

SqlParameter param = new SqlParameter();

param = cmd.Parameters.Add("@SeqName", SqlDbType.NVarChar);
param.Direction = ParameterDirection.Input;
param.Value = "SeqName";

SqlDataReader reader = cmd.ExecuteReader();

Я также пробовал использовать DataSet , чтобы получить возвращаемое значение с тем же результатом. Что мне не хватает, чтобы получить возвращаемое значение из моей хранимой процедуры? Если потребуется дополнительная информация, дайте мне знать.

71
задан abatishchev 21 November 2014 в 04:22
поделиться