C#实时获取MySQL数据变动的问题
我想做一个C#的东东,目的是为了监听MySQL的数据库中的某个表,只要数据表中的内容有改动,比如增加一行什么的,就要在C#中有提示,链接MySQL什么的我会,就是缺点思路...
我想做一个C#的东东,目的是为了监听MySQL的数据库中的某个表,只要数据表中的内容有改动,比如增加一行什么的,就要在C#中有提示,链接MySQL什么的我会,就是缺点思路,烦高手抽空指点下.
额.说明下,这个MYSQL的数据库是一个我做的PHP的系统的数据库,如果需要在PHP中加入什么,也是可以的,只求些思路,大家帮帮忙~
万分感激,无论有任何想法,随便提点...
再次万分感激!
同志们,Timerr控件按频率来不断查询数据库是很伤的,我们换个思路,我们在PHP里加点什么操作,能回馈给程序,然后再让程序将信息回馈给客户.各位继续发挥下,最好再别提Timer控件了,触发器倒是可以~只是触发器怎么把这个回馈给程序,这个我不太懂,或许各位可以提点我一二.谢啦~~~悬赏已加至100 展开
额.说明下,这个MYSQL的数据库是一个我做的PHP的系统的数据库,如果需要在PHP中加入什么,也是可以的,只求些思路,大家帮帮忙~
万分感激,无论有任何想法,随便提点...
再次万分感激!
同志们,Timerr控件按频率来不断查询数据库是很伤的,我们换个思路,我们在PHP里加点什么操作,能回馈给程序,然后再让程序将信息回馈给客户.各位继续发挥下,最好再别提Timer控件了,触发器倒是可以~只是触发器怎么把这个回馈给程序,这个我不太懂,或许各位可以提点我一二.谢啦~~~悬赏已加至100 展开
7个回答
展开全部
哦,嗯,我简单说下,Web式的系统为Php的.C#做的系统本身为C/S架构,用Timer控件是绝对不聪明的办法,我们只要在Php系统上做点手脚即可:
我的解决方法为:Php系统只要有数据提交的地方去加一段代码,让其用Udp给某个端口发送相关消息.C#的服务端一直监听那个指定的端口,只要收到相关正确的信息,立即通知给客户端,比如类似于QQ弹窗提示空间有新留言,如此实现实时获取MySQL数据库的实时变动.
放个QQ:14654506,或者cgy@d9tec.com(输入好友的地方输入这个)
我的解决方法为:Php系统只要有数据提交的地方去加一段代码,让其用Udp给某个端口发送相关消息.C#的服务端一直监听那个指定的端口,只要收到相关正确的信息,立即通知给客户端,比如类似于QQ弹窗提示空间有新留言,如此实现实时获取MySQL数据库的实时变动.
放个QQ:14654506,或者cgy@d9tec.com(输入好友的地方输入这个)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你可以在c#中加入timer控件,让他1分钟或多长时间读一下数据库中的表,把表的内容存起来,然后对比,比如说条数,如果你删除了一条一定是下次在查的时候少了一条那么count(*)就不===恒等了,如果修改了的话那么把两份数据都合出来用反射对比如果值变了那么也提示。这个做起来不是很麻烦,希望这点小小的思路对你有用
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
———这是我做QQ项目时,系统消息喇叭闪动的代码。(主要告诉你timer控件)
//系统消息闪动
int index = 0;
private void tmrSystem_Tick(object sender, EventArgs e)
{
index = index == 0 ? 1 : 0;
tSButton4.Image = ilSystemMessages.Images[index];
SoundPlayer soundPlayer = new SoundPlayer("system.wav");
soundPlayer.Play();
}
——tmrSystem 是一个timer控件,你只需在(适当时间;比如:加载事件)启用它:
tmrSystem.Enabled = true;
tmrSystem.Start();
当这个timer一启用,每隔0.1(这是我设的,你也可以在timer控件的属性中设定啊)秒图片就会交换一次、喇叭就会响一次,同样把里面的事件换成读取数据库事件,也就是每隔0.1秒读取数据一次啦!
———对于增加或删除一行就有提示,那就是你写Sql语句的问题了,可以用计算数据总数(count(*)),并记录此次的记录,若当下次查询时数据count不等了,那么就用MessageBox或弹出一个窗体呀什么的事件就行啦!
——不清楚的Hi哈!
//系统消息闪动
int index = 0;
private void tmrSystem_Tick(object sender, EventArgs e)
{
index = index == 0 ? 1 : 0;
tSButton4.Image = ilSystemMessages.Images[index];
SoundPlayer soundPlayer = new SoundPlayer("system.wav");
soundPlayer.Play();
}
——tmrSystem 是一个timer控件,你只需在(适当时间;比如:加载事件)启用它:
tmrSystem.Enabled = true;
tmrSystem.Start();
当这个timer一启用,每隔0.1(这是我设的,你也可以在timer控件的属性中设定啊)秒图片就会交换一次、喇叭就会响一次,同样把里面的事件换成读取数据库事件,也就是每隔0.1秒读取数据一次啦!
———对于增加或删除一行就有提示,那就是你写Sql语句的问题了,可以用计算数据总数(count(*)),并记录此次的记录,若当下次查询时数据count不等了,那么就用MessageBox或弹出一个窗体呀什么的事件就行啦!
——不清楚的Hi哈!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可不可以用触发器实现,然后这些动作用触发器监听触发就可以了。
用触发器的好处就是,执行效率比较高,比较安全。
仅供参考。
用触发器的好处就是,执行效率比较高,比较安全。
仅供参考。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
所有对数据库的操作,除了读取都会改变某个全局变量(比如Web程序中的Application)
创建一个监听器监听此变量,一旦改变则触发事件提示用户。
PS:不知道楼主程序结构如何,如果架构好的话改动也不会很大。
创建一个监听器监听此变量,一旦改变则触发事件提示用户。
PS:不知道楼主程序结构如何,如果架构好的话改动也不会很大。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询