Export (0) Print
Expand All

SqlPipe.SendResultsEnd Method

Marks the end of a result set, and returns the SqlPipe instance back to the initial state.

Namespace:  Microsoft.SqlServer.Server
Assembly:  System.Data (in System.Data.dll)

public void SendResultsEnd()

ExceptionCondition
InvalidOperationException

The SendResultsStart method was not previously called.

Managed stored procedures can send result sets to clients that are not implementing a SqlDataReader. This method, along with SendResultsStart and SendResultsRow, allow stored procedures to send custom result sets to the client.

The following example creates a new SqlDataRecord and its SqlMetaData. The example then marks the beginning of a result set using the SendResultsStart method, sends records with example data back to the client using the SendResultsRow method, and marks the end of the result set with the SendResultsEnd method.

	[Microsoft.SqlServer.Server.SqlProcedure]
	public static void StoredProcReturnResultSet()
	{
		// Create the record and specify the metadata for the columns.
		SqlDataRecord record = new SqlDataRecord(
			new SqlMetaData("col1", SqlDbType.NVarChar, 100),
			new SqlMetaData("col2", SqlDbType.Int));

		// Mark the begining of the result-set.
		SqlContext.Pipe.SendResultsStart(record);

		// Send 10 rows back to the client. 
		for (int i = 0; i < 10; i++)
		{
			// Set values for each column in the row.
			record.SetString(0, "row " + i.ToString());
			record.SetInt32(1, i);

			// Send the row back to the client.
			SqlContext.Pipe.SendResultsRow(record);
		}

		// Mark the end of the result-set.
		SqlContext.Pipe.SendResultsEnd();
	}

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft