在 DataGridView 中显示数据表 SQL RealTime
Posted
技术标签:
【中文标题】在 DataGridView 中显示数据表 SQL RealTime【英文标题】:Display data table SQL RealTime in DataGridView 【发布时间】:2013-09-25 14:57:37 【问题描述】:我正在尝试创建显示从 SQL 中的表到系统 Windows 窗体应用程序中的 DataGridView 的行的应用程序
问题是当我直接从 SQL Management Studio 更新行/其他应用程序正在添加/删除/更新表中的行时,我的应用程序没有显示最新的行
我希望我的应用程序实时显示最新的行(即使其他程序更改表行,我希望我的应用程序显示更新的行)
如何解决?
谢谢
【问题讨论】:
【参考方案1】:您想要的是名为“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://***.com/a/14875804/109122
Is there a scalable alternative to SQL Server Query Notifications for raising events in an application from SQL Server?
【讨论】:
谢谢,我在家的时候试试这个:D【参考方案2】:您可以使用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)
从数据库引擎接收消息。
【讨论】:
【参考方案3】:在插入操作时创建触发器。 此触发器必须为您的应用程序触发更新事件。 应用程序接收事件和更新表。
你只需要选择通讯协议
【讨论】:
您可能想解释一下您认为“此触发器必须为您的应用程序触发更新事件”是如何完成的,因为这里的意思远非显而易见。跨度> 是的,请详细说明“触发更新事件”以上是关于在 DataGridView 中显示数据表 SQL RealTime的主要内容,如果未能解决你的问题,请参考以下文章
C#编程代码如何从数据库中查询并把查询结果显示在dataGridView?
VB.NET 无法更新 datagridview 中的 SQL 数据
在 datagridview1 中添加具有全新类型的 SQL Server 数据库数据的新列