建立SQL连接后,执行完SQL语句后,需要将sql连接关闭,想问下connection的属性有close和dispose,二者的区别是什么?我关闭连接后还需要dispose吗?
disposed属性和dipose属性的区别,前者的符号是闪电后者是紫块.
代码如下:
 public void recordConnect(string sql)
        {
            SqlConnection RecordTableconn = new SqlConnection(@"Data Source=LIMING-PC\SQLEXPRESS;" + @"Integrated Security=True;Database=db_TomeTwo");
            SqlCommand cmd = new SqlCommand(sql, RecordTableconn);
            RecordTableconn.Open();
            cmd.ExecuteNonQuery();
            RecordTableconn.Close();
            RecordTableconn.Dispose();
        }
SQLCONNECTION

解决方案 »

  1.   

    disposed和dipose都不是属性,disposed是一个事件(闪电符号),dipose是一个方法(紫色块)
    close()是关闭连接,dispose是释放资源,直接关闭就好了一般using用得也挺多的
    public void recordConnect(string sql)
            {
                using (SqlConnection RecordTableconn = new SqlConnection(@"Data Source=LIMING-PC\SQLEXPRESS;" + @"Integrated Security=True;Database=db_TomeTwo"))
                {
                    SqlCommand cmd = new SqlCommand(sql, RecordTableconn);
                    RecordTableconn.Open();
                    cmd.ExecuteNonQuery();
                }
            }
      

  2.   

    close后可以重新open.dispose后连接串就没了,需要重新指定连接串才能再open
      

  3.   


    using后连接自动关闭并释放吗?
      

  4.   

    嗯,是啊,超过using语句块的都会被自动释放
      

  5.   

    其实没有区别的,close的方法内部也是调用Dispose方法而已的,具体你可以用反射工具看源码就明白了
      

  6.   

    disposed和dipose都不是属性,disposed是一个事件(闪电符号),dipose是一个方法(紫色块)
    close()是关闭连接,dispose是释放资源,直接关闭就好了
      

  7.   

    5楼,并不是close调用了Dispose,而是vs的析构器,如果你的Connection是一个静态的或者全局的,你看它还会Dispose吗
      

  8.   

    数据库链接Close()关闭就行了,无需销毁Dispose(),因为其它地方可能还会用到。
      

  9.   

    直接用using,超出using范围,会自动close(),然后dispose()