从C#应用程序轮询数据库以获取更新

时间:2009-01-18 06:50:08

标签: c# jet polling

我正在尝试创建我的第一个“真正的”C#应用程序 - 一个小型宠物项目,以帮助安排工作中的同行评审。

由于实施任何新事物所涉及的过程/官僚主义的数量太多 - 以及我这样做的事实,我现在远离管理层的眼睛,在我自己的时间,暂时 - 我将成为使用 MS Access MS Jet引擎后端(即访问mdb文件)写这个,因为我可以如何将此应用程序部署到我的同事身上。

我的问题是:如何间歇性地轮询数据库以从数据库中获取更新(新请求的评论,来自其他开发人员请求信息的消息等)?

我应该在每个需要信息的表单上放一个Timer,并在发生更新时刷新所有内容吗?

修改
我正在寻找有关如何实现计时器的建议。我无法在工作站上安装东西,我无法访问服务器(存储空间之外),由于公司的安全要求,我无法自己托管,因为我们的客户有可笑的DoD限制。

我想我无论如何都想到了这一点,因为“表格上的计时器”解决方案运行得很好(当我说我想要一个CLI版本的二级解决方案时,我不知道我在想什么,因为它显然不是不需要..已经很晚了。)

谢谢!

3 个答案:

答案 0 :(得分:1)

您可以启动后台工作线程以在无限循环中进行刷新,并在每次循环迭代的结束(或开始)时休眠。

答案 1 :(得分:0)

将您的应用程序开发为aspnet MVC应用程序。这样它就是一个网站,开发人员只需刷新页面即可获得最新结果。这将在很多方面帮助你:没有民意调查,没有访问权限,网络界面(非常方便),[太多了]

从这里开始 - http://www.asp.net/learn/mvc-videos/video-395.aspx
编辑:更多链接:
(这些都很棒)
* http://www.asp.net/learn/mvc-videos/video-396.aspx
* http://www.asp.net/learn/mvc-videos/video-360.aspx
* http://www.asp.net/learn/mvc-videos/video-361.aspx

答案 2 :(得分:0)

orrite ..我会崩溃。

我最好的建议是轮询访问数据存储将使用System.IO.FileSystemWatcher来监视mdb文件所在的文件夹。通过这种方式,您可以将代码设置为以一定间隔进行轮询,但仅限于Changed事件触发时。这应该会减少cpu和磁盘访问量。

希望这会有所帮助。 :d