表单的控件不会更新DataSet更改

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了表单的控件不会更新DataSet更改相关的知识,希望对你有一定的参考价值。

我可以看到DataGridView变化很好但Form的控件没有更新。 据我所知,bs.ResetBindings(False)应该触发更新! 我已尝试从属性绑定选项卡绑定控件以及相同的结果!

但是我必须承认这是我在vb.net上的第一次尝试!

Imports System.Data.SqlClient

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        testdatTableAdapter.Fill(DATAHUBDataSet.testdat)
        bs = New BindingSource

        address.DataBindings.Add("text", bs, "address")
        typep.DataBindings.Add("text", bs, "type_projet")
        env.DataBindings.Add("text", bs, "enveloppe")
        ra.DataBindings.Add("text", bs, "region")
    End Sub

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        'If Not IsNothing(ds.Tables("testdat")) Then
        '    ds.Tables.Clear()
        'End If

        da = Nothing
        ds = Nothing
        qry = "Select * from work.testdat where network = "
        qry &= "'" & resstrb.Text & "'"
        con.Close()
        con.Open()
        'qry = "Select * from work.testdat"
        cmd = New SqlCommand(qry, con)
        da = New SqlDataAdapter(cmd)
        ds = New DataSet
        da.Fill(ds, "testdat")
        DataGridView1.DataSource = ds.Tables("testdat")
        bs.ResetBindings(False)
    End Sub
End class

Imports System.Data.SqlClient
'! note to mod, can't get this last bit of code to work with ctrl K 
Module test_sqldata
    Public str As String = getconstring()
    Public con As New SqlConnection(str)
    Public cmd As SqlCommand
    Public da As SqlDataAdapter
    Public ds As DataSet
    Public bs As BindingSource
    Public qry As String

    Public Function getconstring() As String
        Return "Data Source=XXXXXXXYYYYYYYY;Initial Catalog=DATAHUB;Integrated Security=True"
    End Function
End Module
答案

将你的'bs'绑定到ds.datatable或删除'bs'并将你的文本框绑定到'ds.Tables(“testdat”)'如果看起来你可以清楚地看到网格和文本框正在使用2个不同的数据源,绑定源数据源根本没有设置,因此文本框绑定到空绑定源

以上是关于表单的控件不会更新DataSet更改的主要内容,如果未能解决你的问题,请参考以下文章

无论控件如何,在表单上的任何控件更新后有啥方法可以触发事件?

当我从另一个表单调用方法时,控件不会更改颜色或文本

数据绑定到 TextBox - 在代码中设置 Text 属性不会更新模型

表单中的 Angular 5 输入不会更新 formControl

如何在项目中的所有 .cs 中传播 Forms UI 控件的名称更改

form.valueChanges 不会为禁用的控件发出值