一般用完就关掉,你的conn如果是全局的应该可以这样判断。

解决方案 »

  1.   

    可以啊
    每次open后嵌套一个close最好拉,节约资源
      

  2.   

    没必要这么费事,除了SqlDataAdapter以外,其它数据对象在使用完SqlConnection以后记得要关闭连接就可以了。
      

  3.   

    public SqlConnection Connection
    {
    get
    {
    return this.conn;
    }
    } public void Open()
    {
    if (conn.State.ToString().ToUpper()!="OPEN")
    this.conn.Open();
    } public void Close()
    {
    if (conn.State.ToString().ToUpper()=="OPEN")
    this.conn.Close();
    }
      

  4.   

    .net具有垃圾回收功能,而且会自动使用连接池。但是,我们不能完全依赖.net的gc机制,咯搂主这么做是很好的,一当使用完连接记得close。
      

  5.   

    如果没有关闭 在次conn.open  就会产生错误 如果定义另一个conn1 conn1.open 就造成了连接浪费  造成很大的性能影响 建议每次 open 以后 conn.close 
      

  6.   

    胜过之后关闭是个好习惯,再用时再打开。效率会高一些。
    connection的连接数目是有限制的。
      

  7.   


    可以每次open后嵌套一个close
    这是程序员的必须
    还可以节约资源
      

  8.   

    这样打开一个数据库的时候,没有用close方法关闭,请问我下次要对数据库操作的时候如果用用了conn.open这个方法,是不是造成了无用的连接阿。我想这样改进行不行?
      不会的  If conn.State = ConnectionState.Closed Then
                    conn.Open()
     End IfState  有5种情况 这样写可能会有问题的
      

  9.   

    那我觉得这个问题就不好解决了,比如写了一个操作数据库的类我要得到一个sqldatareader所以写了一个Getdatareader的方法
    其中
            Public Function GetDataReader(ByVal tempsql As String) As SqlDataReader  '读取数据
                open()
                sqlcmd = New SqlCommand(tempsql, conn)
                myReader = sqlcmd.ExecuteReader()
                Return myReader
            End Function
    同时两次使用GetDataReader方法的时候这样就会导致conn,两次open,难道没有数据库连接的浪费?
      

  10.   

    使用完连接记得close。否则当再次连接时,会出现数据库state=open的异常。