3.22. Retrieving a Return Value from a Stored Procedure
Problem
You are using a stored procedure and need to get the return value.
Solution
Use a parameter defined with a ParameterDirection property of ReturnValue and access the return value.
The solution uses a single stored procedure:
Person.GetContactsReturns a result set containing all records in the
Person.Contacttable inAdventureWorks. Also, the stored procedure returns the@@ROWCOUNTvalue for the query in an output parameter. The stored procedure is shown in Example 3-30.
Example 3-30. Stored procedure: Person.GetContacts
CREATE PROCEDURE Person.GetContacts
@RowCount int OUTPUT
AS
SET NOCOUNT ON
SELECT * FROM Person.Contact
SET @RowCount = @@ROWCOUNT
RETURN @RowCountThe solution creates a DataReader from the stored procedure command. The stored procedure returns the count of records in the return result set—in this case, all records from the Person.Contact table in AdventureWorks. The code displays the value of the return parameter at five different stages of working with the result set in the DataReader:
Before the
DataReaderis createdImmediately after the
DataReaderis createdAfter all rows in the
DataReaderhave been readAfter the
DataReaderis closedAfter the
Connectionis closed
The C# code in Program.cs in the project StoredProcedureReturnValueDataReader is shown in Example 3-31.
Example 3-31. File: Program.cs for StoredProcedureReturnValueDataReader solution
using System; using System.Data; using System.Data.SqlClient; namespace ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access