2013-02-05 99 views
0

例如在窗體加載事件:如何在表單關閉後處理非託管資源?

Dim Conn As New OleDbConnection(ConnectionString) 
    Dim dataAdapter As New OleDb.OleDbDataAdapter 
    Dim dt As New Datatable 
    Dim Command As New OleDbCommand 
    Try 
     Command.CommandText = "select agentName from agents order by agentName" 
     dataAdapter = New OleDb.OleDbDataAdapter(Command.CommandText, Conn) 
     dataAdapter.Fill(dt) 
     agentsV.DataSource = dt 
     agentsV.ValueMember = "agentName" 
    Catch ex As Exception 
     MsgBox(ex.Message, MsgBoxStyle.Exclamation + MsgBoxStyle.MsgBoxRight) 
    Finally 
     Conn.Dispose() 
     dataAdapter.Dispose() 
     Command.Dispose() 
    End Try 

有是沒有設置一個對象,它是DT數據表,因此,如果化妝處置,代理組合框的數據源將被清除!

一般情況下,如何爲這些情況進行處理?

謝謝。

+2

您不必Dispose DataTables。 檢查瞭解更多細節:http://stackoverflow.com/questions/913228/should-i-dispose-dataset-and-datatable – Learner

+1

我應該理解你的問題,創建並分配FormClosing事件處理程序。在事件處理程序中,添加myDataTable.Dispose()。 – Tebc

+0

謝謝你,在你的鏈接中,作者說「system.data命名空間不會擁有非託管資源」,因此不需要配置!任何機構都可以多說一點? –

回答

1

system.data命名空間(ADONET)不包含非託管資源。因此,只要您沒有爲自己添加特別的東西就沒有必要處理這些內容

相關問題