我正在尝试创建应用程序,在SQL系统Windows窗体应用程序中显示从SQL表到DataGridView的行
问题是当我直接从SQL Management Studio更新行时/其他应用程序是添加/删除/更新表中的行,我的应用程序不显示最新行
我希望我的应用程序实时显示最新的行(即使其他程序更改了表行,我希望我的应用程序显示更新的行)
如何解决这个问题?
由于
答案 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问题中:
答案 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收到事件和更新表。
您只需选择通讯协议