.NET如何监控数据库连接中断?

时间:2012-06-20 17:08:45

标签: c# .net database

有没有办法监控数据库连接是否有中断?我有一个跨应用程序共享的连接,一些对象应该对连接中断做出反应。

理想情况下,它应该是一个事件。我发现的唯一一件事就是连接异常,但它是在本地引发的(我正在侦听异常)。

我有意从DbConnection继承并在此对象中侦听异常(重载其方法),在连接错误异常(通过相关代码)上发出信号。但也许有最简单的方法。

感谢您的想法。

1 个答案:

答案 0 :(得分:7)

分享单个连接永远不会好, IS 是一种不好的做法。主要原因实际上是你的问题。 我建议你稍微改变你的设计(不是什么大不了的事),并依赖于ADO.NET 连接池。如果您不想遇到各种瓶颈,尤其是在多线程情况下,这是必须的。

这意味着您的所有连接都是暂时的,只有在需要转到数据库时才创建连接。

您可以阅读有关它的更多信息here,您还可以在其中找到有关如何使用它的示例。要知道的主要事情是它使用了Disposable模式。

//Notice the **using ** block
using(SqlConnection conn = new SqlConnection(connString)) 
{
  conn.Open();
  //do something with the connection.
  //as soon as the using block ends, the managed connection is disposed and released in the pool
}
相关问题