Getting return value from stored procedure in ADO.NET

前端 未结 5 1509
感动是毒
感动是毒 2020-12-09 03:43

I know that there is another question with nearly the same title, but it doesn\'t answer my question. I have a stored procedure, which returns the unique identifier after in

5条回答
  •  伪装坚强ぢ
    2020-12-09 04:32

    Some one can also use this simple and short method to calculate return value from SP

    In SQL:

    Create Table TestTable 
    (
     Int Id
    )
    
    CREATE PROCEDURE Proc_TestProc
     @Id
     AS
       Begin
         Set NOCOUNT ON  //Use this line if you don't want to return any message from SQL
    
         Delete from TestTable where Id = @Id
         return 1
    
         Set NOCOUNT OFF //NOCOUNT OFF is Optional for NOCOUNT ON property
       End
    

    Sql Server always returns Int type value only.

    and in C#

    using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["TestConnectionString"].ToString()))
    using (SqlCommand cmd = new SqlCommand("Proc_TestProc", conn))
    {
     cmd.CommandType = CommandType.StoredProcedure;
    
     cmd.Parameters.AddWithValue("@Id", 1);
     var returnParameter = cmd.Parameters.Add("@ReturnVal", SqlDbType.Int);
     returnParameter.Direction = ParameterDirection.ReturnValue;
    
     conn.Open();
     cmd.ExecuteNonQuery();
     var result = returnParameter.Value;
    }
    

    You can also check your return value in SQL by using this command:

    DECLARE @return_status int;
    EXEC @return_status = dbo.[Proc_TestProc] 1;
    SELECT 'Return Status' = @return_status;
    print 'Returned value from Procedure: ' + Convert(varchar, @return_status); // Either previous or this line both will show you the value of returned value
    

提交回复
热议问题