2008-11-18 3 views
2

У меня возникла проблема с сохранением новой строки в DataGridView обратно в базу данных. Вкратце,Обновление DataGridView/DataSet

1) Я использую SqlDataAdapter для заполнения DataTable в DataSet.

2) DataTable - это DataSource для представления сетки.

3) Если пользователь нажимает на пустую «новую строку» в нижней части DataGridView, я захватываю новую пустую строку в событии RowEnter и заполняю ее данными. Данные отображаются в DataGridView.

4) Когда я вызываю обновление в SqlDataAdapter, новые данные исчезают и не сохраняются в базе данных.

Между этапами 3 & 4 Я пробовал DataGrid.EndEdit, DataSet.AcceptChanges, BindingContext [...]. EndCurrentEdit и, возможно, некоторые другие вещи без успеха.

Как передать изменение из DataGridView обратно в DataSet?

И, если мне может быть разрешен короткий хныканье, почему так трудно найти простой пример такой очевидной вещи?

ответ

1

Согласно this, может возникнуть проблема с AcceptChanges.

процитировать:

Эй,

Вы не можете выполнить AcceptChanges перед обновлением. AcceptChanges возвращает RowState к неизмененному (добавляемые строки должны быть добавлены в значение RowState, а обновленные строки должны быть изменены значением RowState).

Оператор Update должен вызвать AcceptChanges для вас

Обратите внимание, что я не нашел это где-нибудь в MSDN.

Вы бы купили поисковую систему от компании, требующей от Google запрашивать собственную документацию?

Смежные вопросы