0

dispose() メソッドで次のコードを使用しています

 Public Sub Dispose() Implements System.IDisposable.Dispose
            If Not IsDBNull(Command) And Not Command Is Nothing Then
                Dim tmpsqlcon As SqlConnection
                tmpsqlcon = Command.Connection
                Debug.Assert(Not IsDBNull(tmpsqlcon))
                SqlConnection.ClearPool(tmpsqlcon)
                tmpsqlcon.Close()
                Command.Dispose()
                tmpsqlcon.Dispose()
            End If
        End Sub

データベース操作で毎回このメソッドを呼び出します。しかし、それでもアクティブな接続が多すぎることがわかります。

4

1 に答える 1

0

using ステートメントを使用してデータベースに接続する場合は、dispose を使用する必要はありません。

例:

Dim queryString As String = _
    "SELECT OrderID, CustomerID FROM dbo.Orders;" 

Using connection As New SqlConnection(connectionString)
    Dim command As New SqlCommand(queryString, connection)
    connection.Open()

    Dim reader As SqlDataReader = command.ExecuteReader()

    ' Call Read before accessing data. 
    While reader.Read()
        Console.WriteLine(String.Format("{0}, {1}", _
            reader(0), reader(1)))
    End While 

    ' Call Close when done reading.
    reader.Close()
End Using

これは、データベースに接続する方法です。

いくつかの詳細情報:

asp.netでsqlconnectionを閉じる方法

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqldatareader.close.aspx?cs-save-lang=1&cs-lang=vb#code-snippet-2

于 2013-02-22T13:11:06.633 に答える