将数据从 Sql Server 推送到桌面应用程序
Posted
技术标签:
【中文标题】将数据从 Sql Server 推送到桌面应用程序【英文标题】:Push data from Sql Server to desktop application 【发布时间】:2012-09-11 14:16:59 【问题描述】:我有一个用 c# 编写的非常简单的 .net 4 桌面应用程序,它需要显示一些插入到 SQL Server (2005) 上的表中的数据。数据本身很简单,只有一行,大约 10 列,(主要是其他数据的计数)。
我可以每隔 x 间隔从应用程序轮询 sql server,但我的偏好是尽可能让 sql server 将数据推送到此应用程序,因为“新数据”的时间通常是不规则的。
简而言之,我想知道这是否可能。在发布这个问题之前做了一些研究,我发现了一些可能性。
1) SignalR:我发现this 问题似乎很有希望,但这似乎是在 Web 应用程序而不是桌面应用程序的上下文中。在查看 signalR wiki 后,在我看来,它需要某种 Web 服务或其他我希望避免的 http 连接。
2) Sql server 更改跟踪,来自this 问题。首先,我不在 sql 2008 上,所以我假设我必须安装或配置它(这不是问题),但我也不确定这是否能满足我的需要。
我还要提到,这个客户端应用程序可能存在于 100 多台不同的电脑上,所有这些电脑都需要在数据更改时得到通知。
那么,这样的事情可能吗?如果问题有点含糊,我深表歉意 - 并提前感谢您的帮助!
【问题讨论】:
你看了吗? msdn.microsoft.com/en-us/library/ms130764.aspx @Blam 有趣。我会快速旋转一下,然后回复你:) 嗯,这是 3 年前的事了,但我想知道同样的事情。 .NET 4 或 4.5.2 的任何更新? @MartinMeeser 我刚刚挖出了我的旧代码(它从未投入生产)并且可以验证它是否适用于 .NET 4.5.2 和 SQL Server 2014。 【参考方案1】:SQLDependency
class 应该迎合您所指的场景。
虽然我没有使用这个的任何个人经验,this article 似乎符合你的情况
【讨论】:
好的,我知道了,它正在工作......有点。我只是试图在 sql server 上正确设置查询通知,以便仅在表中的特定数据发生更改时发送通知。 我已经成功了!我的问题是我需要在命令中指定两个部分表名称。感谢您的帮助! 我想知道这是否确实在下面使用了一种继续请求,或者它是否是来自 sql server 的真正推送 - 无论如何,自 .NET 2.0 起似乎不支持它以上是关于将数据从 Sql Server 推送到桌面应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从本地 SQL Server 推送到 AWS 上的 Tableau Server
计划的 SQL Server 实例推送到 Azure SQL 数据库
如何将 Excel 数据从不同的工作表导出到 SQL-SERVER 数据库?