SqlHelper.ExecuteNonQuery里面有开关连接的代码??
没用sqlHelper....一般都用下面的方式using 语句是执行完了就会释放

解决方案 »

  1.   

    第一种要显示释放资源
    using 清理非托管资源,不受GC控制的资源。Using结束后会隐式的调用Disposable方法。
    局部变量只在函数内使用
      

  2.   

    using{}语句块,执行完自动释放
      

  3.   

    SqlHelper.ExecuteNonQuery();
    直接这么用就行,他会自动释放资源?
    还有,如果我要取数据时:GridView1.DataSource = SqlHelper.ExecuteDataset(SqlHelper.SqlConnection, CommandType.Text, sql).Tables[0];
    GridView1.DataBind(); 这里是不是也不用考虑关闭conn的问题
      

  4.   

    ExecuteDataset
    会自动调用连接的open 和close,所以不用去主动关闭好像除了使用datareader,都会自动去开和关闭,而事实上,sqlconnection的close和open并不是真正意义上的去打开和关闭数据库连接,它只是在连接池里没有连接了的情况下去开一下数据库连接,而后的close只是把这个连接放回了连接池而已。
      

  5.   

    这可能需要看你使用的是什么数据库,比如是Access数据库,可以使用一个全局的打开的连接,在程序结束的时候Close就可以了。而使用Sqlserver等则最好使用的时候Open,用完后立刻Close。所以这时使用Using是合适的。因为Access是单用户的,打开关闭多了反而影响效率,而SqlServer是多用户的,打开了不释放就会占用很多资源。