在DataGridView中显示数据表SQL RealTime

时间:2013-09-25 14:57:38

标签: c# sql-server winforms datagridview

我正在尝试创建应用程序,在SQL系统Windows窗体应用程序中显示从SQL表到DataGridView的行

问题是当我直接从SQL Management Studio更新行时/其他应用程序是添加/删除/更新表中的行,我的应用程序不显示最新行

我希望我的应用程序实时显示最新的行(即使其他程序更改了表行,我希望我的应用程序显示更新的行)

如何解决这个问题?

由于

3 个答案:

答案 0 :(得分:0)

您想要的是名为“SQL查询通知”的MS SQL Server工具,在此处介绍:http://technet.microsoft.com/en-us/library/ms130764.aspx

预先警告,这并不简单,可能会为多个客户端带来一些扩展问题。

这里有一个很好的教程实现:http://www.codeproject.com/Articles/144344/Query-Notification-using-SqlDependency-and-SqlCach

关于缩放问题以及如何处理它们的解释在这些其他SO问题中:

https://stackoverflow.com/a/14875804/109122

Is there a scalable alternative to SQL Server Query Notifications for raising events in an application from SQL Server?

答案 1 :(得分:0)

您可以使用SqlDependency班级。其预期用途主要用于ASP.NET页面(客户端通知数量较少)。

ALTER DATABASE UrDb SET ENABLE_BROKER

实施OnChange事件以获得通知:

    void OnChange(object sender, SqlNotificationEventArgs e)
    And in code:

    SqlCommand cmd = ...
    cmd.Notification = null;

    SqlDependency dependency = new SqlDependency(cmd);

    dependency.OnChange += OnChange;

它使用Service Broker(a message-based communication platform)来接收来自数据库引擎的消息。

答案 2 :(得分:-1)

在插入操作上创建触发器。 此触发器必须为您的应用程序触发更新事件。 Aplication收到事件和更新表。

您只需选择通讯协议