显然( MSDN )有时OleDbConnection.ResetState()不执行任何操作,因此即使连接失败,OleDbConnection.State仍将设置为Open。我正在寻找最好的解决方法,以便当我检查连接状态时,我可以避免引发异常(只要连接在上次检查和使用尝试之间没有失败)。

没有什么比发送“无用的”更好的了。 sql语句每次只是为了查看是否抛出异常?在实际使用之前,如何确保连接已打开?

有帮助吗?

解决方案

在你的情况下,我会做以下事情:

  1. 不要确定连接是否“真的”在使用它之前打开:无论如何它将是大部分时间,并且你将节省大量无用的往返服务器
  2. 每次使用连接时都要检查是否有异常(创建帮助方法以避免复制/粘贴)
  3. 如果您有例外,请发送您的“无用”信息。用于检查数据库连接的语句“真实”州。我会这样做,因为当与服务器的连接丢失时可以获得的异常类型有时会非常令人惊讶(取决于连接断开时发生的情况)
  4. 希望这有帮助。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top