C#文本框数据与数据集绑定

C#文本框数据与数据集绑定,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个文本框,我给了它一个数据绑定,如下所示: txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet, "CompanyDetails.CompanyAddress"); 我还在表单上添加了BindingManagerBase对象,如下所示: protected BindingManagerBase BindingManager { get {

我有一个
文本框
,我给了它一个
数据绑定
,如下所示:

    txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet, 
"CompanyDetails.CompanyAddress");
我还在表单上添加了BindingManagerBase对象,如下所示:

protected BindingManagerBase BindingManager
        {
            get
            {
                return this.BindingContext[CompanyDetailsDataSet, "CompanyDetails"];
            }
        }
我的表单上有一个取消按钮,可以取消更改。当我更新
txtCompanyAddress
中的值并点击cancel时,我调用
BindingManager.CancelCurrentEdit()但文本框值不会更改为旧值


这是否存在数据绑定问题?

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

          txtCompanyAddress.DataBindings.Add("Text", CompanyDetailsDataSet,"CompanyDetails.CompanyAddress", true,DataSourceUpdateMode.OnPropertyChanged);
另外,您还没有发布您的
companydeailsdataset
是什么,因此我假设它实现了
IEditableObject
接口。否则,您必须自己执行,并确保在
CancelEdit()

其中,
ds
是数据集的对象,
[0]
是数据集中的表数。如果您的过程返回多个表,您可以用双代码代替0来写入表名

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