Estoy intentando llamar a un procedimiento almacenado desde mi aplicación de Windows C #. El procedimiento almacenado se está ejecutando en una instancia local de SQL Server 2008. Puedo llamar al procedimiento almacenado pero no puedo recuperar el valor del procedimiento almacenado. Se supone que este procedimiento almacenado devuelve el siguiente número de la secuencia. He investigado en línea y todos los sitios que he visto apuntan a que esta solución funciona.
Código de procedimiento almacenado:
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
Código que llama al procedimiento almacenado:
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();
También intenté usar a DataSet
para recuperar el valor de retorno con el mismo resultado. ¿Qué me falta para obtener el valor de retorno de mi procedimiento almacenado? Si necesita más información, hágamelo saber.
@ReturnVal
al procedimiento almacenado?