代码如下:public class CommSqlConnecton
    {
        public string GetSqlString()
        {
            string SqlString = "Data Source=CCC;Initial Catalog=BiosCopyRoom;User ID=123456;PWD=123456";
            return SqlString;
        }        public string SQLs
        {
            get { return GetSqlString(); }
        }        public SqlConnection SqlCon
        {
            get { return GetSqlConnection(); }
        }        public SqlConnection GetSqlConnection()
        {
            SqlConnection Con = new SqlConnection(SQLs);
            if (Con.State == ConnectionState.Closed)
            {
                Con.Open();
            }
            return Con;
        }    }在程序中new了一个实例之后,怎样关掉那个实例的连接呢????

解决方案 »

  1.   

     public SqlConnection GetSqlConnection()
            {
                SqlConnection Con = new SqlConnection(SQLs);
                return Con;
            }
    或者实现让你的这个类实现一下IDisposable接口。用的时候用using
      

  2.   

    public class CommSqlConnecton:IDispose
        {
            public string GetSqlString()
            {
                string SqlString = "Data Source=CCC;Initial Catalog=BiosCopyRoom;User ID=123456;PWD=123456";
                return SqlString;
            }        public string SQLs
            {
                get { return GetSqlString(); }
            }        public SqlConnection SqlCon
            {
                get { return GetSqlConnection(); }
            }        public SqlConnection GetSqlConnection()
            {
                SqlConnection Con = new SqlConnection(SQLs);
                if (Con.State == ConnectionState.Closed)
                {
                    Con.Open();
                }
                return Con;
            }public void Dispose()
    {
     }public void Close()
    {
    if(Con != null)
    {
     Con.Close();
    }}
        }使用时
    using (CommSqlConnecton commSql= new CommSqlConnecton())
    {
    写你的连接操作的代码
    }
    或者
    CommSqlConnecton commSql= new CommSqlConnecton();
    使用连接
    最后调用
    commSql.Close();
      

  3.   

    同意楼上,
    写个方法 con.close()
      

  4.   

    public void Dispose() 

    Close();

      

  5.   

    弱弱的问下 ,上面红色的Con连接可以用吗???
    不是跳过了作用域了???如果连续两次执行SqlConnection Con = new SqlConnection(SQLs); 会有两个Con连接吗?还是只有一个,执行的时候会自动判断,如果有了Con连接存在就不再建立新的了???
      

  6.   

    你写的有问题,这样无法关闭连接。
    要么在调用的方法中提供开关数据库,要么将你的代码的
    SqlConnection Con
    声明成全局的,然后在CommSqlConnecton中在添加一个数据库开关方法
      

  7.   

     public static SqlConnection SqlCon
            {
                get { return GetSqlConnection(); }
            }
    //close
     public static void CloseDBConnection()
            {
                if (SqlCon!= null)
                {
                    SqlCon.Close();
                    SqlCon.Dispose();
                }
            }
      

  8.   

     public static SqlConnection SqlCon
            {
                get { return GetSqlConnection(); }
            }
    //close
     public static void CloseDBConnection()
            {
                if (SqlCon!= null)
                {
                    SqlCon.Close();
                    SqlCon.Dispose();
                }
            }
      

  9.   

    像這樣可以了嗎?通過設定_sFlagCon的值來設定是否要關閉連接。
            public SqlConnection GetSqlConnection()
            {
                SqlConnection Con = new SqlConnection(SQLs);
                if (_sFlagCon && Con.State == ConnectionState.Closed)
                {
                    Con.Open();
                }
                else
                {
                    Con.Close();
                }
                return Con;
            }
            private bool _sFlagCon=true;        public bool  sFlagCon
            {
                get { return _sFlagCon; }            set { _sFlagCon = value; }
                
            }但是我不明白上面的首先 CommSqlConnection myCon=new CommSqlConnection();//第一次
    然后,myCon.sFlagCon=false;
         myCon.GetSqlConnection();//第二次
    這樣操作后,開始新建的myCon是不是被關閉了;
    還是說根本就沒有關閉,而只是關閉了第二次新建的myCon連接????
    SqlConnection Con = new SqlConnection(SQLs);//這句被執行了兩次。
      

  10.   

    public static class DBHelper
        {        private static SqlConnection connection;
            public static SqlConnection Connection
            {
                get 
                {
                    string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
                    connection = new SqlConnection(connectionString);
                    if (connection == null)
                    {                    
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Closed)
                    {
                        connection.Open();
                    }
                    else if (connection.State == System.Data.ConnectionState.Broken)
                    {
                        connection.Close();
                        connection.Open();
                    }
                    return connection;
                }
            }
            public static int ExecuteCommand(string safeSql)
            {
                SqlCommand cmd = new SqlCommand(safeSql, Connection);
                int result = cmd.ExecuteNonQuery();
                return result;
            }