0

我有一个表单(实际上是紧凑框架),其中包含几个字段、一个日期和一个字符串等。两个 TextBox 控件都绑定到 BindindSource 中的属性。

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

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

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

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

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

不幸的是,代码有点太多,无法在此处发布。

4

1 回答 1

0

我发现了问题 - 我不小心在 BindingSource 中为 TextBox 的 Tag 和 Text 属性选择了同一列。我认为发生的事情是先写回文本,然后再写回标签,并且由于标签没有更新,它覆盖了修改后的值。

于 2009-03-18T18:41:35.347 回答