C# 如何在c中设置SQL Server侦听器

C# 如何在c中设置SQL Server侦听器,c#,asp.net,.net,sql-server,C#,Asp.net,.net,Sql Server,我一直在试图从我的C代码中找出如何在数据库表上设置侦听器。最近我一直在尝试设置SqlDependency,但我遇到了问题,因为我尝试应用该过程的数据库是只读的,我还没有权限更改它 有人知道其他的方法来设置这样的东西吗?我的总体目标是允许我的应用程序侦听数据库,并在有插入、更新等时收到通知,并具体提供更改的内容,即哪一行 编辑:我无权访问插入/更新数据库的代码,我只能以只读方式访问数据库本身。您需要设置并订阅。见: 无效初始化 { //创建依赖关系连接。 SqlDependency.Startco

我一直在试图从我的C代码中找出如何在数据库表上设置侦听器。最近我一直在尝试设置SqlDependency,但我遇到了问题,因为我尝试应用该过程的数据库是只读的,我还没有权限更改它

有人知道其他的方法来设置这样的东西吗?我的总体目标是允许我的应用程序侦听数据库,并在有插入、更新等时收到通知,并具体提供更改的内容,即哪一行

编辑:我无权访问插入/更新数据库的代码,我只能以只读方式访问数据库本身。

您需要设置并订阅。见:

无效初始化 { //创建依赖关系连接。 SqlDependency.StartconnectionString,队列名称; } 空位法 { //假设连接是一个开放的SqlConnection。 //创建新的SqlCommand对象。 使用SqlCommand=newsqlcommand 选择ShipperID、CompanyName、来自dbo的电话。Shippers, 联系 { //创建依赖项并将其与SqlCommand关联。 SqlDependency=新的SqlDependencycommand; //在类成员中维护引用。 //订阅SqlDependency事件。 dependency.OnChange+=new OnChangeEventHandlerOnDependencyChange; //执行命令。 使用SqlDataReader=command.ExecuteReader { //处理数据读取器。 } } } //处理程序方法 无效OnDependencyChangeobject发送方, SqlNotificationEventArgs e { //处理事件,例如,使此缓存项无效。 } 无效终止 { //释放依赖项。 SqlDependency.StopconnectionString,队列名称; }
你不能从插入数据库的代码中跟踪它吗?啊,没有。。我有一个非常奇怪的情况,在这种情况下,我无法访问代码的这一部分会很好,对吗?我所能访问的只是对插入的数据库的只读权限。延迟要求是什么?你是需要马上知道,还是只是想捕捉变化的详细历史来了解发生了什么。在随后与外部进程通信的表中插入更改触发器可能会导致数据库操作出现问题。最好的方法可能是打开表的CDC,然后以最小的影响跟踪每个更改,然后您可以询问。您可以发布SQL Server的确切版本吗?阅读SQlDependency,这似乎可以满足您的需要,但要注意性能影响。如果一批产品突然发生100000次变化,会发生什么?