How to: Dispose of a System Resource 

You can use a Using block to guarantee that the system disposes of a resource when your code exits the block. This is useful if you are using a system resource that consumes a large amount of memory, or that other components also want to use.

To dispose of a database connection when your code is finished with it

  1. Make sure you include the appropriate Imports Statement for the database connection at the beginning of your source file (in this case, System.Data.SqlClient).

  2. Create a Using block with the Using and End Using statements. Inside the block, put the code that deals with the database connection.

  3. Declare the connection and create an instance of it as part of the Using statement.

    ' Insert the following line at the beginning of your source file.
    Imports System.Data.SqlClient
    Public Sub AccessSql(ByVal s As String)
        Using sqc As New System.Data.SqlClient.SqlConnection(s)
            MsgBox("Connected with string """ & sqc.ConnectionString & """")
        End Using
    End Sub
    

    The system disposes of the resource no matter how you exit the block, including the case of an unhandled exception.

    Note that you cannot access sqc from outside the Using block, because its scope is limited to the block.

    You can use this same technique on a system resource such as a file handle or a COM wrapper. You use a Using block when you want to be sure to leave the resource available for other components after you have exited the Using block.

See Also

Tasks

How to: Transfer Control Out of a Control Structure
How to: Perform Multiple Actions on an Object

Reference

Using Statement (Visual Basic)
SqlConnection

Concepts

Decision Structures
Loop Structures
Other Control Structures
Nested Control Structures

Other Resources

Control Flow in Visual Basic