Tengo la siguiente consulta:En C# cómo obtener valor devuelto de procedimiento almacenado utilizando ExecuteNonQuery
create proc [dbo].[DeleteParts]
@TransNo nvarchar (6), @fpart nvarchar(25)
AS
DECLARE @Returns BIT
SET @Returns = 1
BEGIN
TRY
BEGIN TRANSACTION
DELETE FROM PARTABLE
WHERE TransNo = @TransNo and fpart = @fpart
COMMIT
END TRY
BEGIN CATCH
Print 'Delete failed'
SET @Returns = 0
-- Any Error Occurred during Transaction. Rollback
IF @@TRANCOUNT > 0
ROLLBACK -- Roll back
END CATCH
RETURN @Returns
Esto compila perfectamente bien.
En C#, deseo ejecutar esta consulta y obtener el valor de retorno.
Mi código es la siguiente:
using(System.Data.SqlClient.SqlCommand deletecommand = this._connection.CreateCommand())
{
deletecommand.CommandText = "DeleteParts";
deletecommand.CommandType = System.Data.CommandType.StoredProcedure;
deletecommand.Parameters.AddWithValue("@TransNo", ItemSODBOM.SONO);
deletecommand.Parameters.AddWithValue("@fpart", ItemSODBOM.fbompart);
string ReturnValue = deletecommand.ExecuteNonQuery().ToString();
}
No me da ningún error, pero en vez de eso está regresando número de filas afectadas, quiero volver 1 ó 0.
Ejemplo: Si Eliminar el éxito de la operación luego devuelve 1 y si falla, devuelve 0.
Cualquier ayuda con el código fuente sería apreciada.
Gracias,
Pradeep
Como señala RemoteSojourner; * no * devuelve nada –
Si publica código, XML o muestras de datos, ** por favor ** resalte esas líneas en el editor de texto y haga clic en el botón "muestras de código" ('{}') en la barra de herramientas del editor Para formatear y sintaxis, ¡destaquelo! (y ** no ** use el mecanismo "citando" en su lugar - ¡eso solo arruina su código!) –