C#与DataSet绑定的文本框数据

时间:2013-03-30 11:13:04

标签: c# winforms data-binding

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

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

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

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

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

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

2 个答案:

答案 0 :(得分:0)

使用此设置无法自动刷新您需要在更新数据绑定时更改模式

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

你还没有发布CompanyDetailsDataSet的内容,所以我假设它实现了IEditableObject接口。否则,您必须自己完成并确保在CancelEdit()上缓存和检索旧值

答案 1 :(得分:0)

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

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