|
Prev: Get value of first cell in selected row in DataGridView?
Next: .NET CGI script has inadequate permissions to receive form data ???
From: Terry Holland on 24 Jul 2008 11:27 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() |