不会影响速度。ADO.NET自动有连接池。

解决方案 »

  1.   


    _spDA.Disponse();//用完以后清除所占资源~~~
      

  2.   

    一个一个的打开
    第一个打开了connection用完后立即关闭
    下一个要用再打开就行了,当然用完后还是要立即关闭
      

  3.   

    如果你每次都是用同样的数据(DATASET),把这个DataSet定义成公有变量 不好吗?
    如果是WEB应用,也有方法可以DataSet传递呀!比方 session.
      

  4.   

    如果你只是调用_spDA.Fill方法,那你不必显式开闭数据连接...Fill 方法使用关联的 SelectCommand 属性所指定的 SELECT 语句从数据源中检索行。与 SELECT 语句关联的连接对象必须有效,但不需要将其打开。如果调用 Fill 之前连接已关闭,则将其打开以检索数据,然后再将其关闭。如果调用 Fill 之前连接已打开,它将保持打开状态。
      

  5.   

    强力建议 关闭!~
    conn不关闭 会浪费 服务其资源
    还会 出现 程序 无法 打开新的数据连接问题
      

  6.   

    建议关闭连接,不然浪费资源!
    要不和ado有什么区别!
      

  7.   

    关闭连接,因为每个连接都会占用数据库服务器的资源
    可以这样子
    打开时:if (sqlConn.state != ConnectionState.open)
    {
     sqlConn.Open();
    }
    关闭时:if (sqlConn.state != ConnectionState.closed)
    {
     sqlConn.Close();
    }
      

  8.   

    //建议
    如果是在web情况下,请关闭,
    在Windows form中可以看情况,如果处理数据是多个过程,可以在取之前打开一次,
    到所有数据出理完后再关闭连接。
      

  9.   

    不用了一定要关闭,用的时候再开,不用担心其实ado.net默认的会自动用连接池
      

  10.   

    不用关闭!dataset本身就是断开式连接!
      

  11.   

    我开发过大型mis,有位同伴没有关闭连接, 生生把一个服务器给弄死了。一看,有100多个连接被他打开没有关闭。只有你关闭后,这个打开的连接才回归连接池,否则只从pool中取连接,不把用完连接归还pool中,也不行的。良好的企业级开发习惯就是用时再连,用完后关闭。再次打开时不会影响速度,因为数据提供者会从连接池中高速给你分配一个已经存在的连接。
      

  12.   

    使用前打开(OPEN),使用完后关闭(CLOSE)
      

  13.   

    打开前先判断是否是已打开的,否则打开;使用完毕立即关闭!详见 Duwamish7.0或 http://kingtechweb001.dns0755.net
      

  14.   

    关闭,虽然实际上ADO.Net中的关闭是将连接放入缓冲池
      

  15.   

    关闭连接,因为每个连接都会占用数据库服务器的资源
    可以这样子
    打开时:if (sqlConn.state != ConnectionState.open)
    {
     sqlConn.Open();
    }
    关闭时:if (sqlConn.state != ConnectionState.closed)
    {
     sqlConn.Close();
    }
      

  16.   

    第一种方法:
    打开一个连接多次使用,如:
    SqlConnection cn = new SqlConnection(connectionString);
    cn.Open();
    SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText,cn);
    SqlDataAdapter sqlAda1 = new SqlDataAdapter(selectCommandText,cn);
    多次取数据用同一个连接;第二种方法:
    SqlConnection cn = new SqlConnection(connectionString);
    cn.Open();
    SqlDataAdapter sqlAda = new SqlDataAdapter(selectCommandText+selectCommandText+...+selectCommandText,cn);
    一个连接一次取出多个表;第三种方法:
    用一个连接,操作数据后,关掉,再取数据时再开一个新的连接,用完再关掉......
      

  17.   

    当然要关闭啊不管C#有没有垃圾回收器,问题是数据库服务器的链接数过多,是数据库服务器先当机,而不是web服务器!
      

  18.   

    当然要关闭了,但只要用到close就可以了,象java一样,.net有自动回收技术,用不着调用dispose,当然你实在要用也没问题!
      

  19.   

    同意chNET(有神论者)的观点,mm上面的代码来看,Adapter在Fill()完成之后会自动关闭与数据库的连接,当然手动关闭是个好习惯, 但是如果他都是那样写的并不会影响速度!
      

  20.   

    Fill是自动打开关闭的。所以不用手动控制。如果是手动打开的connection,一定要关闭。因为连接池满的时候会出错。另外,如果不关闭,会让GC很难做。
      

  21.   

    你要根据你的数据库访问数量,设置连接池的最大数量。
    基本原则是:
              尽量晚的open尽量早的close
      

  22.   

    SqlDataAdapter这个函数是微软开发的类,这个类可以自己打开数据库,然后自己关闭数据库,如果你用这个类是不会影响速度的!但是如果你用conn.open()的话,你一定要记住及时打开及时关闭,这样才不会影响速度!这要养成良好的编程习惯!
      

  23.   

    try
    {
    }
    catch
    {
    }
    finally
    {
    conn.Close();
    conn.Dispose();
    }
      

  24.   

    一定要关闭,不过,还有一个偷懒的办法,就是:
    在数据库连接字符串中有一个参数ConnectionLifeTime
    用它来设置每个数据库连接的超时时间