Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在使用SqlCommand/C时恢复ServiceBroker对话框句柄?_C#_Sql Server_Service Broker - Fatal编程技术网

C# 如何在使用SqlCommand/C时恢复ServiceBroker对话框句柄?

C# 如何在使用SqlCommand/C时恢复ServiceBroker对话框句柄?,c#,sql-server,service-broker,C#,Sql Server,Service Broker,使用SQL Server的Service Broker时,必须开始对话框才能启动对话框。当通过SSMS等执行查询时,BEGIN对话框查询将对话框句柄放入变量中 不过,我正试图使用.NET的SqlCommand执行开始对话框查询。我想我希望用SqlCommand返回对话框句柄。然后,我可以在后续查询中使用该句柄 我没有办法让开始对话框查询返回句柄作为查询结果 如何通过.NET的SqlCommand执行BEGIN DIALOG查询,以获得该对话框句柄?您可以将输出参数与SqlCommand一起使用。

使用SQL Server的Service Broker时,必须
开始对话框
才能启动对话框。当通过SSMS等执行查询时,
BEGIN对话框
查询将对话框句柄放入变量中

不过,我正试图使用.NET的
SqlCommand
执行
开始对话框
查询。我想我希望用
SqlCommand
返回对话框句柄。然后,我可以在后续查询中使用该句柄

我没有办法让
开始对话框
查询返回句柄作为查询结果


如何通过.NET的
SqlCommand
执行
BEGIN DIALOG
查询,以获得该对话框句柄?

您可以将输出参数与
SqlCommand
一起使用。例如:

using (var cmd = new SqlCommand(@"BEGIN DIALOG CONVERSATION @dialog_handle FROM SERVICE ... TO SERVICE ... ON CONTRACT ...", connection)) {
    var handleParam = new SqlParameter("dialog_handle", SqlDbType.UniqueIdentifier) {
        Direction = ParameterDirection.Output
    };
    cmd.Parameters.Add(handleParam);
    cmd.ExecuteNonQuery();
    var dialogHandle = (Guid)handleParam.Value;                            
}

您可以创建一个存储过程并让它返回句柄吗?