在vb.net中填充现有数据表后刷新datagridview

时间:2014-02-16 18:07:30

标签: vb.net datagridview datatable windows-forms-designer

我正在使用VB.net处理Windows窗体应用程序。我填充了Datagridview1(dataset1.existingtable是数据表)。现在我希望从其数据表的一列获取不同的值,然后填充另一个Datagridview2(dataset2.uniquerecords是数据表)。

问题:无法使用设计模式刷新Datagridview2中的数据。但是,我可以在运行时动态创建数据表时刷新数据。 我的表单完全加载后,在事件后调用下面的子。

以下代码不起作用

Private Sub loaddistinctrecords()

    uniquerecords = existingtable.DefaultView.ToTable(True, "column_name")       
    Datagridview2.Refresh()
End Sub

以下代码有效

Private Sub loaddistinctrecords()

    Dim newuniquerecords As New DataTable()
    newuniquerecords = existingtable.DefaultView.ToTable(True, "column_name")
    Datagridview2.DataSource = newuniquerecords.DefaultView

End Sub

1 个答案:

答案 0 :(得分:0)

好像看起来无法直接将数据表分配给另一个数据表,并且如果数据表是从设计模式创建的,则期望datagridview自动更新。

可以做的只是清除现有记录,然后合并源数据表中的记录。

Private Sub loaddistinctrecords()

  uniquerecords.Clear()
  uniquerecords.Merge(existingtable.DefaultView.ToTable(True, "table_name"))

End Sub