Я пытаюсь вызвать хранимую процедуру из моего приложения на C # windows. Хранимая процедура выполняется на локальном экземпляре 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
для получения возвращаемого значения с тем же результатом. Чего мне не хватает, чтобы получить
возвращаемое значение из моей хранимой процедуры? Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.