SqlPipe.ExecuteAndSend(SqlCommand) 方法    
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
执行作为参数传递的命令,并将结果发送到客户端。
public:
 void ExecuteAndSend(System::Data::SqlClient::SqlCommand ^ command);public void ExecuteAndSend(System.Data.SqlClient.SqlCommand command);member this.ExecuteAndSend : System.Data.SqlClient.SqlCommand -> unitPublic Sub ExecuteAndSend (command As SqlCommand)参数
- command
- SqlCommand
要执行的 SqlCommand 对象。
例外
              command 为 null。
对于绑定到进程外连接的命令,此方法不受支持。
示例
以下示例使用 SqlConnection 和 SqlCommand 从存储过程中的数据源中选择行。 然后,该示例使用 SqlPipe 执行命令并将结果发送回客户端。
[Microsoft.SqlServer.Server.SqlProcedure()]
public static void StoredProcExecuteCommand(int rating)
{
    // Connect through the context connection.
    using (SqlConnection connection = new SqlConnection("context connection=true"))
    {
        connection.Open();
        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.
        SqlContext.Pipe.ExecuteAndSend(command);
    }
}
<Microsoft.SqlServer.Server.SqlProcedure()> _
Public Shared Sub StoredProcExecuteCommand(ByVal rating As Integer)
    Dim command As SqlCommand
    ' Connect through the context connection
    Using connection As New SqlConnection("context connection=true")
        connection.Open()
        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
        SqlContext.Pipe.ExecuteAndSend(command)
    End Using
End Sub
注解
除了任何实际结果外,其他消息和错误也会直接发送到客户端。
输出参数和返回值不会发送到客户端;这些通过命令对象的参数集合可供调用方使用。
如果命令未绑定到进程内连接, InvalidOperationException 则会引发 。 对于绑定到进程外连接的命令,此方法不受支持。
如果提交的对象中 SqlCommand 存在错误,则会将异常发送到管道,但也会向调用托管代码发送副本。 如果调用代码未捕获异常,它将向上传播堆栈到 Transact-SQL 代码,并在输出中出现两次。 如果调用代码确实捕获了异常,管道使用者仍将看到错误,但不会有重复错误。