Public Function GetData() As DataTable Dim conn As New SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("connstr").ConnectionString)
Dim cmd As SqlCommand = conn.CreateCommand
With cmd
.CommandText = "select customerid,companyname from customers"
End With
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet
Try
da.Fill(ds, "customers")
Catch ex As Exception
Throw ex
Finally
conn.Dispose()
cmd.Dispose()
da.Dispose()
ds.Dispose()
End Try Return ds.Tables("customers") End Function一段很简单的代码,看finally中,ds.dispose方法已经销毁了这个对象,为何
Return ds.Tables("customers") 能返回正确的结果集,并能够正确的呈现到dataview控件上?
Dim cmd As SqlCommand = conn.CreateCommand
With cmd
.CommandText = "select customerid,companyname from customers"
End With
Dim da As New SqlDataAdapter(cmd)
Dim ds As New DataSet
Try
da.Fill(ds, "customers")
Catch ex As Exception
Throw ex
Finally
conn.Dispose()
cmd.Dispose()
da.Dispose()
ds.Dispose()
End Try Return ds.Tables("customers") End Function一段很简单的代码,看finally中,ds.dispose方法已经销毁了这个对象,为何
Return ds.Tables("customers") 能返回正确的结果集,并能够正确的呈现到dataview控件上?
而垃圾回收器将在该对象超出使用域后进行垃圾回收.