9

显然(MSDN)有时 OleDbConnection.ResetState() 什么都不做,所以即使连接失败 OleDbConnection.State 仍将设置为打开。我正在为此寻找最佳解决方法,以便在检查连接状态时可以避免引发异常(只要在上次检查和使用尝试之间连接没有失败)。

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

4

1 回答 1

5

在您的情况下,我会执行以下操作:

  1. 在使用它之前不要担心连接是否“真的”打开:无论如何,它会在大多数情况下出现,并且您将节省大量无用的服务器往返
  2. 但是每次使用连接时检查是否有任何异常(创建帮助方法以避免在此处复制/粘贴)
  3. 如果您有异常,则发送您的“无用”语句来检查数据库连接“真实”状态。我会这样做,因为当与服务器的连接丢失时,您可以获得的异常类型有时会非常令人惊讶(取决于连接断开时发生的情况)

希望这可以帮助。

于 2009-03-09T16:49:31.487 回答