数据库事件

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:41:01
我想在C#中检测sql server 数据库的表table的状态,即当表添加了记录,或删除了记录,或修改了记录时能接收到相应的事件,然后在C#中做其他相应的操作,能实现吗,如何实现?
可是数据库数据不一定是我自己修改了,可能是别人修改了,我想别人修改数据之后我这里马上能接收到这个事件,如果用个计时器的话很多时候数据库数据没被修改岂不是白白重新读取数据

直接让Sql server 回传好像是不行的。你可以换个思路

1:通过轮训,定时查询数据库状态。

2:在table上做一个触发器,当做了删除修改等记录的时候触发一个文件更新,然后用文件fileSystemWatcher1_Changed抓取事件。

对于数据库本身而言,实现起来倒比较容易,只要给表加触发器就可以了

但是,对应性能是有影响的

如果C# 里面要检测的话, 有个思路:

给表加上触发器,表有变动时,将 变动信息 插入一张别的用做记录的表,然后,在C#里面,定时的去读取这张记录表

你应该明白一个问题,c#对数据库的操作是单向的,c#可以操作数据库,但是数据库是不能调用c#的。而且 你想比对两张新旧表是否一样效率是很低的,既然数据操作都是在c#中完成的,也就是说事件是在c#中生成的,为什么不用这个事件去触发你的相应操作,干什么走远路呢