一张桌子和两个组合框架

时间:2011-02-08 21:16:54

标签: vb.net combobox datatable datasource

我有:

Dim ds As DataSet = New DataSet
Dim dt As DataTable = New DataTable
adapter.Fill(ds, "Table")
dt = ds.Tables("Table")

cmbx1.DataSource = dt
cmbx1.DisplayMember = "field1"
cmbx1.ValueMember = "field2"

cmbx2.DataSource = dt
cmbx2.DisplayMember = "field1"
cmbx2.ValueMember = "field2"

所以,当我从cmbx1中选择一些东西时,它也会在cmbx2中被选中。这是为什么?

我是否需要ctx2的dt副本才能获得相同的值,但是可以单独选择吗?

1 个答案:

答案 0 :(得分:4)

这是因为他们引用了同一个对象。

使用dt.Copy()解决问题。

  

具有与此DataTable相同结构(表模式和约束)和数据的新DataTable。   如果已派生这些类,则副本也将具有相同的派生类。   Copy和Clone方法都创建了一个与原始DataTable结构相同的新DataTable。由Copy方法创建的新DataTable与原始表具有相同的DataRows集,但Clone方法创建的新DataTable不包含任何DataRows。

相关问题