winform中(当数据库的数据有变化时)datagridview 刷新的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了winform中(当数据库的数据有变化时)datagridview 刷新的问题相关的知识,希望对你有一定的参考价值。

B用户查询datagridview中显示人员信息,当A用户在同时登录这个程序而更改了某人员的信息时,B用户怎样也能在他当前查询界面不关闭的情况下看到更改的信息?

如果用timer控件,怎么判断数据变化了再刷新,而不是隔几秒窗体就闪一下。

winform有一个特点,只要你将数据源变化了,datagridview自然就变化了。
你如果不想每隔几秒刷,我这有两个办法。
一,记录你每次修改每张表的时间。也就是你对这个表中的数据进行增删改操作,就在数据库里把这个表的更新时间记录一下。然后在打开这个窗体进行查询的时候,同时获得这个时间,剩下的,你在timer里去拿你查询时记录的这个时间去和表中记录的时间去比较,不一样了,就说明改变了,你就重新读一遍数据去刷新grid

二,如果你的SQL版本是2005及以上,可以利用SqlDependency来实现,关于这个类的具体用法你可以百度一下,我说一下功能,就是建立一个数据库依赖,当数据库表一旦发生变化时,会自动触发.net程序中的一个方法,在这个方法中你去重新获取数据,更新你的数据源。
参考技术A timer控件+线程。即可解决。 关于线程的用法可以自己百度下。

以上是关于winform中(当数据库的数据有变化时)datagridview 刷新的问题的主要内容,如果未能解决你的问题,请参考以下文章

winform Form 内控件焦点变化?

C#里winform最大化时,如何使里面的控件按比例变化

Vue计算属性和监听属性

winform中如何判断控件的内容已经修改?

c#winform 关于页面大小与控件大小的问题

在 Winform 中,为啥当我在一个数据源上调用 PropertyChanged 时所有绑定的属性都会更新?