1

我正在编写一个需要从数据库中的视图不断更新其显示数据的应用程序。目前,它定期轮询整个数据集并重新显示它。我正在改变它以提高效率,并且对人们对如何最有效地做到这一点的意见感兴趣。

该应用程序是一个 Windows 窗体应用程序并使用 DataGridView 来显示数据。数据库服务器是 SQL Server 2008。

我一直在阅读有关 SQL Server 更改跟踪功能的信息,想知道这是否相关?任何人都可以在这里提出任何好的方法吗?我需要它在应用程序中插入、更新和删除行,而不影响当前选定行的状态或滚动条的位置。

谢谢!

4

2 回答 2

1

最简单的方法是按时间戳列查询。当你第一次运行你的应用程序时,它会查询整个数据集并记住最大的时间戳。然后它将使用查询进行轮询where timestamp > @currentTimestamp并再次记住它。

于 2010-08-10T16:22:45.783 回答
0

如果我正在解决这个问题,我会考虑这样做:

  1. 创建 SQL Server 数据库项目
  2. 向项目添加触发器
  3. 让该类发送通知,可能使用 MSMQ,到感兴趣的应用程序或
  4. 考虑使用该 SQL Server 类注册事件处理程序...不确定如何或是否会起作用,但从触发器向您的应用程序引发事件将是理想的

如果您需要,我可以更具体,但这是一般方法

SQL Server 项目中的触发器信息:http: //msdn.microsoft.com/en-us/library/938d9dz2.aspx

于 2010-08-10T16:58:50.190 回答