摘要:如果我在处理完DataGridView.DataSource之后不处理BindingSource,但是如果处理它就会中断它 - 那为什么?我需要担心处置这个吗?处理BindingSource中断DataGridView数据源
Public Sub GridViewUpdate()
Dim cn As New System.Data.SqlServerCe.SqlCeConnection
Dim SQL As System.Data.SqlServerCe.SqlCeCommand
Dim tbl As New DataTable
Dim adp As System.Data.SqlServerCe.SqlCeDataAdapter
Dim Bds As New BindingSource
DataGridView1.Columns.Clear()
cn.ConnectionString = "Data Source = C:\path\data.sdf"
SQL = cn.CreateCommand
SQL.CommandText = "SELECT myfields FROM myTable ORDER BY field1 DESC, field2 ASC"
cn.Open()
adp = New SqlServerCe.SqlCeDataAdapter(SQL)
adp.Fill(tbl)
Bds.DataSource = tbl
DataGridView1.DataSource = Bds
cn.Close()
cn.Dispose()
SQL.Dispose()
adp.Dispose()
tbl.Dispose()
Bds.Dispose() '*** <<--- This breaks it - GridView becomes empty
End Sub
那么,这里发生了什么?当我设置DataGridView1.DataSource = Bds它只是做这个作为参考? Bds在程序退出后如何处置?如果我为DataGridView1.DataSource指定了其他内容,垃圾收集是否会将其提取出来?我需要担心这个吗?
这不起作用 - 问题在于处理Bds时,而不是tbl。想通了 - 虽然 - 张贴我自己的答案在下面。 –