SqlPipe.ExecuteAndSend Method (SqlCommand)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Executes the command passed as a parameter and sends the results to the client.

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

public void ExecuteAndSend(
	SqlCommand command


Type: System.Data.SqlClient.SqlCommand

The SqlCommand object to be executed.

Exception Condition

The command is null.


This method is not supported on commands bound to out-of-process connections.

In addition to any actual results, other messages and errors are also sent directly to the client.

Output parameters and return values are not sent to the client; these are available to the caller, through the parameters collection of the command object.

If the command is not bound to an in-process connection, an InvalidOperationException is thrown. This method is not supported on commands bound to out-of-process connections.

If there are errors in the SqlCommand object that was submitted, exceptions are sent to the pipe, but a copy is also sent to calling managed code. If the calling code doesn't catch the exception, it will propagate up the stack to the Transact-SQL code and appear in the output twice. If the calling code does catch the exception, the pipe consumer will still see the error, but there will not be a duplicate error.

The following example uses SqlConnection and SqlCommand to select rows from a data source in a stored procedure. The example then uses a SqlPipe to execute the command and send the results back to the client.

public static void StoredProcExecuteCommand(int rating)
	// Connect through the context connection.
	using (SqlConnection connection = new SqlConnection("context connection=true"))

		SqlCommand command = new SqlCommand(
			"SELECT VendorID, AccountNumber, Name FROM Purchasing.Vendor " +
			"WHERE CreditRating <= @rating", connection);
		command.Parameters.AddWithValue("@rating", rating);

		// Execute the command and send the results directly to the client.


.NET Framework
Available since 2.0
Return to top