使用SQL Server的Service Broker时,您必须BEGIN DIALOG
才能启动对话框。当通过SSMS等执行查询时,BEGIN DIALOG
查询将对话框句柄放在变量中
我正在尝试使用.NET的SqlCommand
来执行BEGIN DIALOG
查询。我想,我希望SqlCommand
能够返回对话框句柄。然后我可以在后续查询中使用该句柄。
我认为无法获取BEGIN DIALOG
查询而是将句柄作为查询结果返回。
如何通过.NET BEGIN DIALOG
执行SqlCommand
查询,以便我能够处理该对话框?
答案 0 :(得分:2)
您可以将输出参数与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;
}