WPF 从数据库实时更新
Posted
技术标签:
【中文标题】WPF 从数据库实时更新【英文标题】:WPF live Update from database 【发布时间】:2011-02-15 20:18:56 【问题描述】:我正在构建一个多用户 WPF 应用程序(要求是桌面应用程序),数据库 SQL Server 2008。
有两种类型的用户。
第一种类型的用户将输入一条记录,该记录将存储在一个表中。
第二种类型的用户最初会看到一个包含表中记录的列表框。要求是必须实时更新列表框(即,如果第一个用户输入了新记录,则必须更新列表框)。
目前我还没有实现数据库功能。 我目前正在使用 ObservableCollection 并模拟这种情况。
我想知道实现这一目标的最佳方法。 我应该使用计时器并继续查询表格吗?有没有更有效的方法? 这甚至可能吗(我应该切换到 ASP.NET 吗?)?
如果您有任何建议和提示,我将不胜感激。
【问题讨论】:
【参考方案1】:尝试使用SqlDependency,因为当查询结果在服务器上发生变化时(例如,来自其他用户或进程的 INSERT 或 UPDATE 的结果),它会在您的代码中引发事件 (OnChange)
在 CodeProject 上用于简单实时聊天应用程序的示例:
http://www.codeproject.com/KB/database/chatter.aspx
【讨论】:
+1 我们在一个非常相似的商业案例中使用它,它提供了 OP 需要的东西。简而言之,您指定一个SELECT
查询,只要该查询的结果集发生更改,SQL Server 就会触发通知。以上是关于WPF 从数据库实时更新的主要内容,如果未能解决你的问题,请参考以下文章
从 ViewModel WPF 更新 XAML 中的 ComboBox ObservableCollection 绑定
将 WPF 从 .NET 4 更新到 4.5.2,DataGridTextColumn Visibility DataContext 引用损坏