如果没有显式执行过Connection.Open语句,有没有必要执行其Close呢?例如在下面这种情况下:Dim da As OleDb.OleDbDataAdapter
Dim ds As New System.Data.DataSetda = New OleDb.OleDbDataAdapter(sql, myConnection)
da.Fill(ds, tableName)其中myConnection是一个静态变量以上代码执行完毕后myConnection究竟要不要执行Close呢?如果以上代码被反复执行是否会导致数据库的连接数耗尽呢?

解决方案 »

  1.   

    不好意思,上面定得有点问题,要看你是怎么打开的,就怎样写Close语句
      

  2.   

    OleDbDataAdapter处理数据的时候,如果它引用的连接开始是打开的,那么,调用da.Fill()方法之后,连接仍然保持打开状态。如果开始是关闭的,这个方法,首先打开连接,然后把数据填到DataSet或者DataTable中,然后再负责关闭连接!也就是说:调用da.Fill()方法后,连接的状态保持原样!如果原来就是打来的,当然要关闭。
      

  3.   

    ADO.net技术内幕中提到了这个,你可以参考一下!
      

  4.   

    最好close掉,
    da.Close();
    如果方问量没有多在的个人网站
    没有用也是没有关系的