如何在vb.net应用程序中捕获mysql触发器和存储过程?

如何在vb.net应用程序中捕获mysql触发器和存储过程?,mysql,wpf,vb.net,stored-procedures,triggers,Mysql,Wpf,Vb.net,Stored Procedures,Triggers,嘿,这里我需要一些帮助,我正在使用visual Studio 2010和mysql v5.5开发一个vb.net桌面应用程序,其数据库将位于主服务器中,因此应用程序必须和数据库通信以获取/发布信息 然而,我的问题是,我希望我的应用程序能够实时更新数据库内容,这样,如果user1更新了数据库,它就会立即在user2的应用程序中反映出来。我读过一些文章,建议使用mysql语法中的触发器和存储过程来实现这一点,但我不知道这将如何工作 我有一个名为“Store”的表,当用户在表Store中输入一个项时,

嘿,这里我需要一些帮助,我正在使用visual Studio 2010和mysql v5.5开发一个vb.net桌面应用程序,其数据库将位于主服务器中,因此应用程序必须和数据库通信以获取/发布信息

然而,我的问题是,我希望我的应用程序能够实时更新数据库内容,这样,如果user1更新了数据库,它就会立即在user2的应用程序中反映出来。我读过一些文章,建议使用mysql语法中的触发器和存储过程来实现这一点,但我不知道这将如何工作

我有一个名为“Store”的表,当用户在表Store中输入一个项时,我希望应用程序知道它,并在列表框或数据网格中更新该项及其内容

如何在vb.net代码中捕获这些事件


我希望我足够清楚,如果不清楚,请询问。我们将非常感谢您的所有建议

我认为解决这个问题最简单的方法是定期从服务器获取记录并适当地更新本地列表。在客户端应用程序上,您可以存储上次更新列表的时间,并在执行获取操作时将其作为参数发送,然后获取在该时间之后创建的所有项目(这样您就只能获取新项目)

另一种可能的解决方案是让客户机向服务器应用程序注册(以便服务器跟踪所有客户机),当您创建新记录时,您将该新记录发送给所有客户机,这些客户机将侦听该事件


在你的情况下,很难说什么是“最好的”方法。你的代码是如何设计的(架构是什么)?客户端和服务器应用程序之间的连接是否持久?您的客户机应用程序是否与服务器应用程序通信,或者每个客户机是否直接与数据库通信?

您在哪里向表中添加项目?这是您的应用程序吗?请检查:是的,我在应用程序中添加了表单中的项目。我曾想到过这一点,但我试图找到一种方法来缓解应用程序的网络流量。此外,它是一个库存应用程序,因此当用户在不同(几乎相似)的时间输入来自不同客户端的数据时,如果不同步,则可能会出现重复条目,从而引发异常。在我的应用程序中,我只执行一次查询,然后将结果存储在一个数组中,在整个应用程序中都将使用该数组。是的,每个客户端都直接与数据库通信。我认为在您的情况下,最好是使用轮询刷新数据,实际上我认为没有办法。我不相信有一种方法可以监听数据库触发器。如上所述,唯一的另一种解决方案是,如果您有一个中间服务器应用程序,它可以适当地处理请求,就像所有创建请求都被发送到应用服务器来处理一样,然后将响应发送回所有连接的客户端(如果创建成功)。不过,这似乎还有很多工作要做。