Обновление DataGridView / DataSet - PullRequest
2 голосов
/ 18 ноября 2008

У меня проблемы с сохранением новой строки в DataGridView обратно в базу данных. Коротко говоря,

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

2) DataTable является источником данных для представления сетки.

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

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

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

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

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

Ответы [ 2 ]

1 голос
/ 18 ноября 2008

Согласно это , проблема может быть в AcceptChanges.

Цитировать:

Эй,

Вы не можете выполнить AcceptChanges перед обновлением. AcceptChanges возвращает RowState обратно в значение «Без изменений» (для добавленных строк должно быть добавлено значение RowState, а для обновленных строк - значение Modified RowState).

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

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

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

1 голос
/ 18 ноября 2008

У меня есть успех с подходом здесь:

http://msdn.microsoft.com/en-us/library/fbk67b6z.aspx

Я все еще думаю, что слишком сложно найти ответы в документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...