Ich versuche, eine gespeicherte Prozedur aus meiner C # -Fensteranwendung aufzurufen. Die gespeicherte Prozedur wird auf einer lokalen Instanz von SQL Server 2008 ausgeführt. Ich kann die gespeicherte Prozedur aufrufen, aber den Wert nicht von der gespeicherten Prozedur zurückrufen. Diese gespeicherte Prozedur soll die nächste Nummer in der Sequenz zurückgeben. Ich habe online recherchiert und alle Websites, die ich gesehen habe, haben darauf hingewiesen, dass diese Lösung funktioniert.
Gespeicherter Prozedurcode:
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
Code, der die gespeicherte Prozedur aufruft:
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();
Ich habe auch versucht, mit a DataSet
den Rückgabewert mit dem gleichen Ergebnis abzurufen. Was fehlt mir, um den Rückgabewert von meiner gespeicherten Prozedur zu erhalten? Wenn Sie weitere Informationen benötigen, lassen Sie es mich bitte wissen.
@ReturnVal
die gespeicherte Prozedur ergänzen ?