Я намагаюся викликати збережену процедуру з моєї програми 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();
Я також спробував використовувати a DataSet
для отримання поверненого значення з тим самим результатом. Що мені не вистачає, щоб отримати повернене значення з моєї збереженої процедури? Якщо потрібна додаткова інформація, будь ласка, повідомте мене.
@ReturnVal
до збереженої процедури?