日期:2014-05-17  浏览次数:20499 次

C# 里如何才能力时实得到数据库中的最新数据,暂不可采用Ajax操作等
如何在C#   程序中实现时实取到数据库表中的最新数据,如创建线程,启用定时器等等!待求解决方案!!!在线等,急……谢谢!!!

------解决方案--------------------
那么你要问一问,数据库如何主动跟你的程序通讯?
------解决方案--------------------
不了解通讯,从来不会编写通讯程序,你只会查询数据库,那么你就会感到很神秘。其实也没有什么太多的技术。

例如Sql Server具有serviceblocker机制,可以异步发消息。于是在.net中也就有了类似SqlDependency这类东西。你也可以自己编写触发器,在SQL Server数据库中调用c#编写的过程代码(或者其它编译为dll的组件),来进行进程间通讯。总之就是需要自己编写一点新东西而已,这一点东西就可以说你不是只会编写OA的程序员了,而是会一点通讯程序编写经验的程序员了。
------解决方案--------------------
就拿SqlDependency来说吧,假设你使用的不是SQL server2005以后的数据库(而是类似SQL Server2000那类),它就会采取轮询的方式,每隔几百毫秒去轮询一次。而当你采用SQL Server2005以后版本,它就可以直接使用数据库系统提供的主动的消息通知机制来实现了。这种差别是在通讯技术上,SQL Server2005终于懂得需要实现客户端主动订阅消息的机制了。

可是我们大多数人的问题也是出在凡是只是停留在轮询数据库的思路上,你的“多线程、定时器”都跟实现你的目标几乎没有关系,都是一个“轮询后台”的思路,不是后台数据处理部分“主动通知”的思路。