我想执行一个代码在c#每当一个新的行插入到数据库中

本文关键字:一个 插入 数据库 执行 代码 | 更新日期: 2023-09-27 18:04:30

我正在研究一个聊天应用程序,其中来自一个客户端的聊天消息进入数据库,其他客户端每5秒(使用计时器)轮询是否有任何新消息,如果是,消息被获取并显示。但是,当一个用户使用较慢的网络连接,而另一个用户使用非常快的网络连接时,这会产生一个问题。我想开发一种机制,只在数据库中插入新行时执行方法,这样就不需要轮询了。只有当任何客户端有新的聊天消息进入数据库时,用户才会获取消息,否则所有客户端都处于空闲状态。任何帮助将是非常感激的。我正在使用asp.net和c#。

我想执行一个代码在c#每当一个新的行插入到数据库中

您所描述的是从轮询模型转移到发布/订阅模型(您可以理解,这是一种比轮询更好的聊天/提要方式)。两个可能的参考资料是c#中的发布/订阅设计模式实现这篇文章和之前关于发布/订阅体系结构的堆栈溢出问题。

我将不评论实现应用程序的不同方法,而是集中精力回答您提出的问题——您可以使用查询通知来完成这个任务。你可以用这些做很多事情,但基本的前提是,一旦你设置好了,你给SQL server一个你感兴趣的查询,当结果发生变化时,它会通知你的应用程序。

有一个合理的教程(代码是在VB。. NET,但实际上并没有改变多少)