日期:2014-05-19  浏览次数:20888 次

想用进程操作数据库,怎么做?
我想实现:

先插入数据库一条数据,然后用进程监视它的一个字段,如是字段被改变了,

就显示出这条数据


现在有2个问题:
进程都是操作没有反回值的方法,想半天,想用全局变量来着,字段被改变了,全局变量也改变,可是要是多进程并发,会不会有显示错误??

进程.start()     时,还不是马上执行     进程调用的方法。。。
现在就是全部设计思想混乱。。。。


。。。。头晕中,等着大家的拯救



------解决方案--------------------
用进程监控数据库??——最好不要这样。

有进程的另外一种模式——用定时器吧

==================================================================
博客空间:http://blog.csdn.net/lovingkiss
资源下载:http://download.csdn.net/user/lovingkiss
Email:loving-kiss@163.com
本人说明: <我的帖子我做主,结贴率保持100%>
优惠接单开发,信誉保证,Q64180940(请清楚注明业务还是技术咨询)
==================================================================
------解决方案--------------------
楼主说的是线程吧???
------解决方案--------------------
1. 相信LZ说的是线程,不是进程.

2. 估计LZ是在Form里显示数据,用System.Windows.Forms.Timer比人为起线程好,原因:

A. 即使用线程也需要Sleep一段时间间隔,否则会CPU 100%,这和Timer很象了.
B. 用线程对Form上的控件操作时候,需要用Invoke或者BeginInvoke同步到UI主线程上.
C. 多线程访问全局变量还要加锁

3. 用System.Windows.Forms.Timer唯一的缺点就是如果数据库查询操作比较耗时,你的Form会有短暂的消息阻塞.
------解决方案--------------------
好象微软.NET己有相应的技术的:缓存(SqlCacheDependency)!
好象可以支持SQL和Oracle,当库表中的数据发生变动时,会通知给相应的对象!可以参照一下,应该能满足你的要求!

------解决方案--------------------
只能用定时器查询了

------解决方案--------------------
提供另一种思路,在数据库中建触发器当表中的数据有变更时,就在触发器中往一个特定的文件夹写入一个文本文件,你的C#程序监听这个文件夹,当有文件变更时就触发相应的操作,这样就可以避免无休止的访问数据库的情况了。。
注意:C#中可以直接注册一个监听到文件夹的。