Привязка данных форм - DataSet не обновляется? - PullRequest
0 голосов
/ 18 марта 2009

У меня есть форма (на самом деле Compact Framework) с несколькими полями, датой и строкой, между прочим. Оба элемента управления TextBox связаны со свойствами в BindindSource.

BindindSource имеет DataSet в качестве свойства DataSource, а DataMember является таблицей в базе данных SQL CE.

Когда я хочу добавить новую строку, я вызываю bindingSource.AddNew (), затем bindingSource.MoveLast (). Форма показывает значения по умолчанию (как определено в DataSet), и я могу редактировать все поля.

Чтобы сохранить форму, я вызываю bindingSource.EndEdit () и вставляю значения из строки DataSet в базу данных, используя метод TableAdapter. Дата попадает в базу данных, строка - нет. Вместо этого сохраняется значение по умолчанию для строки, а не значение, которое я набрал в текстовом поле.

Когда я проверяю данные в строке таблицы DataSet после вызова EndEdit (), поле даты обновляется данными из формы, строка не является.

Как ни странно, когда я редактирую существующую строку с той же формой (без вызова AddNew), строковое поле обновляется и сохраняется очень хорошо. Так что это происходит только после вызова AddNew () в BindingSource. Что мне не хватает? С чего мне начать искать?

К сожалению, код слишком велик для размещения здесь, к сожалению.

1 Ответ

0 голосов
/ 18 марта 2009

Я обнаружил проблему - я случайно выбрал один и тот же столбец в BindingSource для свойства Tag и Text элемента TextBox. Я думаю, что произошло то, что текст был записан первым, а тег - вторым, и поскольку тег не был обновлен, он изменил измененное значение.

...