vb.net重新绑定datagrid以显示vb.net中的更改

Lan*_*ins 3 .net vb.net data-binding datasource datagridview

我有以下代码在更新数据库后刷新表单中的数据网格.我的问题是为什么我必须清除数据源然后重新添加它以获得要显示的更改.我认为刷新方法会这样做,但我似乎无法让它工作.是否有更有效的方法刷新数据网格而不是重置数据源?

Public Sub addPlan(ByVal planname, ByVal plannumber)
    Dim planinfo As New changeDatabase(planname, plannumber, planAdapter)

    planinfo.addPlan()
    Form1.DataGridView1.EndEdit()

    Form1.DataGridView1.DataSource = ""
    Form1.DataGridView1.DataSource = planAdapter.GetData()
End Sub
Run Code Online (Sandbox Code Playgroud)

Abb*_*bas 5

尝试创建显式BindingSource并为其分配数据源,然后将DataGridView's DataSource属性设置为BindingSource实例.

BindingSource对象的ResetBinding方法将导致DataGridView重新读取列表中的所有项目,并刷新所有显示的值.

Dim bindingSource As BindingSource
bindingSource = New BindingSource()
bindingSource.DataSource = planAdapter.GetData()
Form1.DataGridView1.DataSource = bindingSource

bindingSource.ResetBindings(false)
Run Code Online (Sandbox Code Playgroud)

注意:传递false意味着只有原始数据源中的值已更改,true表示数据的架构已更改.