C#与DataSet的Textbox数据绑定

本文关键字:Textbox 数据绑定 DataSet | 更新日期: 2023-09-27 18:06:40

我有一个TextBox,我给了它DataBinding,如下所示:

    txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet, 
"CompanyDetails.CompanyAddress");

此外,我还在表单上添加了一个BindingManagerBase对象,如下所示:

protected BindingManagerBase BindingManager
        {
            get
            {
                return this.BindingContext[CompanyDetailsDataSet, "CompanyDetails"];
            }
        }

我的表格上有一个取消按钮,可以取消更改。当我更新txtCompanyAddress中的值并点击cancel时,我调用BindingManager.CancelCurrentEdit();,但文本框值不会更改为旧值。

这有数据绑定问题吗?

C#与DataSet的Textbox数据绑定

使用此设置,绑定不会自动刷新。当数据绑定更新时,您需要更改模式

          txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,"CompanyDetails.CompanyAddress", true,DataSourceUpdateMode.OnPropertyChanged);

另外,您还没有发布CompanyDetailsDataSet是什么,所以我假设它实现了IEditableObject接口。否则,您将不得不自己进行操作,并确保在CancelEdit() 上缓存和检索旧值

textBox1.DataBinding.Add("Text",ds.Tables[0],"ColumnName")

其中ds是数据集的对象,[0]是数据集中的表数。如果过程返回多个表,则可以用双代码将表名写在0的位置。。。