gpt4 book ai didi

c# - Datagrid 不刷新更改的数据

转载 作者:行者123 更新时间:2023-11-30 16:33:41 26 4
gpt4 key购买 nike

有什么办法可以让datagrid监听数据库,如果数据库数据发生变化,自动更新数据?我使用 SQL Server 数据库。

如果可能,我想使用 Linq-2-SQL

最佳答案

因为@Slaggg 问:有相当简单的方法可以做到这一点,但它们几乎肯定会涉及大量编码,它会显着影响性能,我强烈怀疑它会更多麻烦大于它的值(value)。

也就是说,对于典型的 n 层应用程序,在非常高的级别上您需要:

(1) 一种在数据变化时通知中间层的方法。您可以在每个表内使用自定义代码触发器来触发某种通知(可能使用 WCF 和 CLR 存储过程),或者您可以使用 SqlDependency目的。可能第二种效果更好。

(2) 一种通知连接到该中间层的每个客户端的方法。假设您正在使用 WCF,您将需要使用一种可用的双工绑定(bind),例如 Net.TCP 或 HttpPollingDuplex(用于 Silverlight)。您需要确保在客户端和服务器上都正确配置了它。您还需要手动跟踪哪些客户端可能对更新感兴趣,以便您可以知道要更新哪些客户端,并且您需要能够在它们消失或超时时将它们从该列表中删除。来自 MS WCF 团队的 Tomek 在他的 blog 上有一些很好的例子您可能想要调查的内容。

(3) 一旦您从中间层收到某些内容已更改的通知,就会更新本地客户端的模型和/或 View 模型和/或 UI。这比您想象的要复杂:在正常情况下,让您的 UI 与您的数据模型保持同步已经足够困难了,但是当数据模型也可以从另一个方向在您的控制下发生变化时,它会变得更加复杂。

这类通知背后的想法非常简单:但是正确获取所有细节可能会让您调试到深夜。两年后必须支持这一切的人会诅咒你的名字。

希望这对您有所帮助。

关于c# - Datagrid 不刷新更改的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2939116/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com