表单数据绑定 - DataSet不更新?

时间:2009-03-18 18:17:53

标签: winforms data-binding dataset bindingsource tableadapter

我有一个Form(实际上是Compact Framework),包含一些字段,日期和字符串等等。两个TextBox控件都绑定到BindindSource中的属性。

BindindSource有一个DataSet作为其DataSource属性,DataMember是SQL CE数据库中的一个表。

当我想添加一个新行时,我调用bindingSource.AddNew(),然后调用bindingSource.MoveLast()。表单显示默认值(在DataSet中定义),我可以编辑所有字段。

要保存表单,我调用bindingSource.EndEdit()并使用TableAdapter方法将DataSet行中的值插入数据库。日期使其进入数据库,字符串不会。而是保存字符串的默认值,而不是我在文本框中键入的值。

当我在调用EndEdit()之后检查DataSet表的行中的数据时,使用表单中的数据更新日期字段,字符串不是。

奇怪的是,当我使用相同的表单编辑现有行(不调用AddNew)时,字符串字段会更新并保持正常。所以这只发生在BindingSource上调用AddNew()之后。我错过了什么?我应该从哪里开始寻找?

不幸的是,这里的代码有点太多了。

1 个答案:

答案 0 :(得分:0)

我发现了这个问题 - 我意外地在BindingSource中为TextBox的Tag和Text属性选择了相同的列。我认为发生的事情是文本首先写回来,标记第二,因为标签没有更新,它覆盖了修改后的值。