我试图创建一个应用程序,只要向数据库添加新行,就可以弹出通知消息。我正在使用mysql并将默认引擎更改为csv引擎,以便我可以使用FileSystemWatcher来检测任何更改。每当删除一行时,filesystemwatcher就会触发,但问题是当一个新行添加到数据库时它没有触发更改事件。我还观察到当删除一行时“修改日期”正在改变但是当我添加一个新的时候排它不更新。请帮帮我。
private void button1_Click(object sender, EventArgs e)
{
FileSystemWatcher fsw = new FileSystemWatcher();
fsw.Path = "C:\\xampp\\mysql\\data\\doubts\\";
fsw.EnableRaisingEvents = true;
fsw.Changed += new FileSystemEventHandler(func);
}
private void func(Object obj,FileSystemEventArgs e)
{
notifyIcon1.Icon = SystemIcons.Application;
notifyIcon1.BalloonTipText =
"Addition of new row to the database detected...";
notifyIcon1.ShowBalloonTip(4000);
}
答案 0 :(得分:1)
我建议您定期轮询数据库以检查更改的记录。
如果您的查询很昂贵,您可以创建一个AFTER INSERT
或AFTER UPDATE
触发器,插入到另一个表中,然后轮询该表。
如果仍然不够,您可以这样做:从您的应用程序中,运行类似
的命令SELECT "WaitForChanges", SLEEP(999);
创建一个触发器,通过KILL QUERY command:How to do this from a stored procedure来杀死此选择。