从数据库中不断更新应用程序中的数据

时间:2010-08-10 16:15:12

标签: .net winforms sql-server-2008 change-tracking

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

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

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

谢谢!

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

  1. 创建SQL Server数据库项目
  2. 向项目添加触发器
  3. 让该类可能使用MSMQ向感兴趣的应用发送通知 或
  4. 查看使用该SQL Server类注册事件处理程序...不确定如何或是否可行,但是从触发器向应用程序引发事件将是理想的
  5. 如果需要,我可以更具体,但这是一般方法

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