检查OleDbConnection状态的最佳方法

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

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

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

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

希望这可以帮助。