Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 监视MySQL表在C程序中的更改?_C#_.net_Mysql - Fatal编程技术网

C# 监视MySQL表在C程序中的更改?

C# 监视MySQL表在C程序中的更改?,c#,.net,mysql,C#,.net,Mysql,是否可以在c#应用程序中监视mysql表的更改?我基本上希望在将数据插入表时引发一个事件。现在我唯一能想到的就是每隔100ms左右查询一次表。如果应用程序和数据库服务器都在同一台机器上,那么您可以在MySQL中设置一个触发器,在插入、更新后将其写入日志文件,然后创建一个触发器来监视该日志文件。FileSystemWatcher将为您的应用程序提供可以响应的文件 触发器可能如下所示: create trigger MyTable_Monitor after insert, update on My

是否可以在c#应用程序中监视mysql表的更改?我基本上希望在将数据插入表时引发一个事件。现在我唯一能想到的就是每隔100ms左右查询一次表。

如果应用程序和数据库服务器都在同一台机器上,那么您可以在MySQL中设置一个触发器,在插入、更新后将其写入日志文件,然后创建一个触发器来监视该日志文件。FileSystemWatcher将为您的应用程序提供可以响应的文件

触发器可能如下所示:

create trigger MyTable_Monitor
after insert, update on MyTable
for each row
begin
select * from new into outfile "path/to/table.log"
end

我在上面的代码中看到的一个问题是无法追加outfile(我能说的最好),因此如果在一个调用中执行多个查询(甚至由不同的客户端同时执行多个查询),则可能会出现问题。欢迎提出任何改进建议。

也许可以向表中添加Insert、Update、Delete触发器,以将行记录到一个包含两列的新表中

  • 行的uid已更改
  • 更改类型插入/更新/删除
  • 然后访问此表,它会告诉您具体插入、更新和删除了哪些行。

    谢谢。不幸的是,C#应用程序可能没有在同一台计算机上运行,或者没有访问日志目录的权限来使用FileSystemWatcher