2009-03-18 11 views
0

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

У объекта BindindSource есть DataSet как его свойство DataSource, а DataMember - это таблица в базе данных SQL CE.

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

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

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

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

Код слишком много, чтобы публиковать здесь, к сожалению.

ответ

0

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