我要侦听C#对SQL Server数据库中数据的更改。我希望有某种类型的侦听器,我可以使用它来确定我拥有的数据是否过时。尽管这是一个相当常见的场景,但我找不到任何不是简单地轮询数据库的解决方案。
我使用Linq- to -SQL来访问数据,因此有一个DataContext对象,我希望我能侦听到一个on data changed事件,但我似乎找不到一个。
我意识到这不是一个平凡的障碍(从C#方法到SQL Server DB),我希望这是一个可以解决的问题的原因是它是GUI的一个常见需求。如果无法侦听更新,如何保持GUI中显示的数据是最新的(当数据由SQL Server数据源支持时)。
虽然这不是针对GUI工作的,但我希望能从那个领域改编一些东西。
是否有办法在C#中订阅SQL Server数据库更改事件?
发布于 2010-07-29 23:25:41
我以前从未使用过它们,但您尝试过SQL Server事件通知吗?请参阅本文:Getting Started with SQL Server Event Notifications
发布于 2010-07-29 23:31:57
您正在寻找SqlDependency
class,它允许您监听对SQL查询结果集的更改。
发布于 2010-07-29 23:33:29
对于SQL Server,DataContext不会为您提供任何类型的侦听器功能。最好的办法是创建一个轮询应用程序,或者甚至创建一个单独的线程,它定期轮询数据库的更改,并公开一个主应用程序可以监听的事件。
https://stackoverflow.com/questions/3364148
复制相似问题