Im not sure if this is the correct group for this question - please feel free
to redirect me to a more appropriate group if necessary
Im assessing Enterprise Libraries and I wanted to know how objects are
disposed of
ie writing data access code by hand i might write soemthing like this
Dim strConnTxt As String =
"Server=(local);Database=Northwind;Integrated Security=True;"
Dim strSql As String = "select * from products where categoryid = "
& txtCategoryID.Text
'create and open the connection object
Using objConn As New SqlConnection(strConnTxt)
'Using Definition
'http://msdn.microsoft.com/en-us/library/htd05whh.aspx
objConn.Open()
'Create the command object
Using objCmd As New SqlCommand(strSql, objConn)
objCmd.CommandType = CommandType.Text
'databind the datagrid by calling the ExecuteReader() method
GridView1.DataSource = objCmd.ExecuteReader()
GridView1.DataBind()
lblCount.Text = ""
End Using
'close the connection
objConn.Close()
End Using
As I understand, by using the 'Using' block, the connection & command
objects are disposed of when exiting the block
If however I use the following code using DataAccessApplicationBlock, how
are these objects (that are inevitably created within the application block
code) disposed of?
Dim db As Database = DatabaseFactory.CreateDatabase()
Dim dbCommand As DbCommand =
db.GetStoredProcCommand("GetProductsByCategory")
db.AddInParameter(dbCommand, "CategoryID", DbType.Int32,
txtCategoryID.Text)
db.AddOutParameter(dbCommand, "RecordCount", DbType.Int32,
txtCategoryID.Text)
GridView1.DataSource = db.ExecuteReader(dbCommand)
GridView1.DataBind()