步骤如下:1.网络正常连接情况下,去执行sqlConnection.open();执行通过
2.将网络断开情况下,再次去执行sqlConnection.open();执行也通过也不会报错以上情况不知道是何原因,我的目的是如果软件能正常运行的情况下,断开网络连接,检测到连接不上SQL SERVER服务器具体代码如下:
                public SqlConnection GetConnection()
{
m_StartTime = DateTime.Now; if (m_objSqlConnection == null)
{
m_objSqlConnection = new SqlConnection(m_strSqlConnectionString);
m_objSqlConnection.Open();
}
else
{
if ( (m_objSqlConnection.State & ConnectionState.Open) == 0)
m_objSqlConnection.Open();
}
return m_objSqlConnection;
}        static public bool DBIsConnect()
        {
            System.Data.SqlClient.SqlConnection sqlConnection;
            try
            {
                sqlConnection = m_DB.GetConnection();
                if ((sqlConnection.State & ConnectionState.Open) != 0)
                {
                    sqlConnection.Close();
                }
                return true;            }
            catch
            {
                return false;
            }
        }

解决方案 »

  1.   

    连接的不是本机,是远程的一台SQL SERVER服务器
      

  2.   

    远程的sqlserver么?可能是连接池的问题
      

  3.   


    连接的不是本机,是远程机器,
    在网络正常的情况下,连接没有问题
    紧接着把网络断开的话,也catch不到异常发生
      

  4.   

    第一次打开后,数据库连接对象就已存在了,当数据库断开后,这个对象仍然存在,看看下面的语句是否正确if ( (m_objSqlConnection.State & ConnectionState.Open) == 0)
                        m_objSqlConnection.Open();
    如果条件不成立,这个对象永远不会执行数据库打开动作.
      

  5.   

    应该跟你的SQL Server版本有关系
      

  6.   


    条件是成立的,它会一直执行Open操作的
      

  7.   

    与SQL SERVER版本关系? 那如何来操作呢,谢谢