Hi
I just would like to know what the most appropriate techniques are for
Disposal of ADO.NET objects

ie, consider the following code (VB):
(It just creates and returns a dataset)

Public Function GetDataSet() As DataSet
        Dim conn As New SqlConnection(connString)
        Dim cmdSelect As New SqlCommand("mySProc", conn)
        cmdSelect.CommandType = CommandType.StoredProcedure

      Dim ds As New DataSet()
      Dim da As SqlDataAdapter = New SqlDataAdapter(cmdSelect)
        da.Fill(ds, "TableName")

        da.Dispose()
      cmdSelect.Dispose()
      conn.Dispose()

        Return ds
End Function


Basically..Am I going overkill on the Dispose methods?

(ie if I Dispose the DataAdaptor, does it dispose it's Command objects
itself, therefore meaning that I don't have to), etc

Also...What resources are actually being disposed?
The only resource I would have thought needed disposing, was the database
connection (and therefore conn.Dispose would do the entire job

Finally...(and on a related note) would the caller have to dispose the
dataset (seeing that at that point it's basically just an in-memory XML
stream)

I can't find anything in the docs about it (just that Dispose should be
called if it exists, and you're finished with it) and the ADO.NET books I've
looked through rarely call Dispose at all (perhaps with the same reasoning
that error handling is rarely shown in books..to make the point of the
example clear)

TIA
Merak

You can read messages from the DOTNET archive, unsubscribe from DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to