Próbuję wywołać procedurę składowaną z mojej aplikacji C # systemu Windows. Procedura składowana działa na lokalnym wystąpieniu programu SQL Server 2008. Mogę wywołać procedurę składowaną, ale nie mogę odzyskać wartości z procedury składowanej. Ta procedura składowana ma zwrócić następną liczbę w sekwencji. Zrobiłem badania online i wszystkie witryny, które widziałem, wskazywały, że to rozwiązanie działa.
Kod procedury składowanej:
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
Kod wywołujący procedurę składowaną:
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();
Próbowałem również użyć DataSet
do pobrania wartości zwracanej z tym samym wynikiem. Czego mi brakuje, aby uzyskać wartość zwracaną z mojej procedury składowanej? Jeśli potrzebujesz więcej informacji, daj mi znać.
@ReturnVal
do procedury składowanej?