gpt4 book ai didi

c# - SqlDependency 查询通知错误

转载 作者:太空宇宙 更新时间:2023-11-03 16:06:13 24 4
gpt4 key购买 nike

我正在尝试让查询通知在 SQL Server 2012 上运行。我正在按照此链接中的教程进行操作:http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach

我最终得到的结果是不断触发 OnChange 事件。 SqlNotificationEventArgs 表示 Info=Invalid、Source=Statement、Type=Subscribe。

根据我的研究,我发现订阅有问题,但我不明白为什么。在 SQL Server 事件日志中,我得到的只是

The query notification dialog on conversation handle '{D30D3675-9A2F-E311-A141-8851FB594FAA}.' closed due to the following error: 
'<?xml version="1.0"?><Error xmlns="http://schemas.microsoft.com/SQL/ServiceBroker/Error"><Code>-8470</Code><Description>Remote service has been dropped.</Description></Error>'.

我已经解决了常见的问题,比如确保我使用的是两部分表名,并且我的查询没有做任何被禁止的事情。这是设置事件的代码:

 public DataTable RegisterDependency()
{
this.CurrentCommand =
new SqlCommand("Select CategoryID,CategoryName,Description from dbo.[Categories]", this.CurrentConnection);

this.CurrentCommand.Notification = null;


SqlDependency dependency = new SqlDependency(this.CurrentCommand);
dependency.OnChange += this.dependency_OnChange;

if (this.CurrentConnection.State == ConnectionState.Closed)
this.CurrentConnection.Open();

try
{
DataTable dt = new DataTable();
dt.Load(this.CurrentCommand.ExecuteReader(CommandBehavior.CloseConnection));
return dt;
}
catch { return null; }

}

我不知道接下来要检查什么。感谢您的帮助。

最佳答案

原来问题出在表定义上。 “描述”列是“ntext”类型,不适用于通知。

关于c# - SqlDependency 查询通知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19235557/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com