如何在数据库发生变化时自动更新gridview而不使用计时器控制
本文关键字:gridview 更新 控制 计时器 数据库 变化 | 更新日期: 2023-09-27 17:49:25
如何在数据库表发生变化时自动更新gridview而不使用定时器控制
如果有人不明白我的问题,请让我评论。
thanks in advance
为了让应用程序检测数据库中的更改,它必须监视相关表,或者以某种方式从外部源获得数据库中更改的通知。使用计时器轮询数据库中的更改是一种选择。另一种方法是让另一个程序执行该任务,然后通知您的应用程序。有些数据库,如Firebird,能够发布应用程序可以侦听的事件。
根据我的经验,让数据库发布事件是迄今为止最简单的解决方案,但它当然要求您使用具有该功能的数据库。您可能还应该考虑您的设计。为什么需要数据库来通知GUI?它是真的有必要或只是一个简单的方法来更新GUI ?在决定这个策略之前,花点时间考虑一下应用程序中的不同层应该扮演什么角色。
话虽如此,有时让数据库引发GUI更改或其他操作是完全可以接受的。如果数据库在多个用户之间共享,并且需要通知每个用户其他用户所采取的操作,那么这可能是一个很好的解决方案。就我个人而言,在确定数据驱动的方法之前,我会试着找到其他的沟通方式,但在某些情况下,真的没有那么多其他可行的选择。
实际上当应用程序需要查询数据库时,但在这种情况下,数据库需要引起事件。虽然数据库可以使用触发器引起事件,但这有一些限制,并且发生的更改的范围在数据库中是有限的。要显示应用程序中的更改(这里是gridview的更新),只有在从应用程序进行调用时才能发生。这可以使用应用程序中的计时器控件来完成,但是如果不从应用程序向数据库发送调用,这是不可能的
你可以使用windows service从应用程序脱机运行…该服务将查询数据库,并在系统中有变化时更新文件…在应用程序中,你可以对文件使用缓存依赖。
我不是百分之百确定,但我认为你可以看看Windows Communication Foundation和他们的一些例子。