Как в C # получить возвращаемое значение из хранимой процедуры с помощью 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

Компилируется отлично.

В C # я хочу выполнить этот запрос и получить возвращаемое значение.

Мой код выглядит следующим образом:

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();
}

Он не дает мне никаких ошибок, но вместо этого он возвращает количество затронутых строк, я хочу вернуть 1 или 0.

Пример: if delete операция успешная, тогда верните 1, а если она не удалась, то верните 0.

Любая помощь с исходным кодом приветствуется.

Спасибо,

Pradeep

8
задан marc_s 16 February 2011 в 12:34
поделиться