【发布时间】:2010-10-15 18:07:33
【问题描述】:
使用BindingSource、DataSet 和TableAdapter 处理来自数据绑定控件的插入的正确顺序是什么?这让我永远感到困惑。
我有一个用于添加新行的表单。
在显示表格之前,我调用:
bindingSource.AddNew();
bindingSource.MoveLast();
保存后,我调用:
bindingSource.EndEdit();
tableAdapter.Insert([the row given to me as bindingSource.Current]);
问题是
- 如果不调用
EndEdit(),当前焦点的TextBox的变化不会保存 - 如果我调用
EndEdit(),BindingSource 的 Current 成员将不再指向我刚刚添加的行。
我当然可以使用表单中的值而不是由 BindingSource 更新的 DataTable 调用 Insert(),但这违背了使用数据绑定的目的。我需要做什么才能使其正常工作?
我知道我可以在整个数据集上调用TableAdapter.Update(),因为我使用的是强类型数据集。不过,我在表中有未绑定数据的外键,并且我在调用 Insert() 之前添加了这些外键。
【问题讨论】:
标签: winforms data-binding dataset bindingsource tableadapter