1

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

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

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

如何解决这个问题?

谢谢

4

3 回答 3

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

SQL Server 查询通知是否有可扩展的替代方案,用于从 SQL Server 引发应用程序中的事件?

于 2013-09-25T15:24:35.503 回答
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)从数据库引擎接收消息。

于 2013-09-25T15:24:41.227 回答
-1

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

您只需选择通信协议

于 2013-09-25T15:02:47.247 回答