Мой DataGridView
связан с BindingSource
, который имеет DataSet
как DataSource
. Соответствующий TableAdapter
в DataSet
имеет, среди прочих, метод Fill
, который поставляет данные из базы данных Access. Я наполняю свою DataGridView
с данными, как показано ниже:DataGridView показывает некоторые пустые ячейки в первой строке после обновления
myTableAdapter.Fill(myDataSet.MyDataTable);
Все это прекрасно работает как и ожидалось. Проблема возникает, когда я меняю свои данные с помощью UpdateQuery
(который также отлично работает), а затем снова нажмите на любую из строк в моем DataGridView
- как только я нажму, последние две ячейки (всегда) первой строки показанный как пустой. Независимо от того, какую строку я нажимаю, это всегда ячейки в первой строке и только после выполнения UpdateQuery
.
Когда я проверяю базу данных Access напрямую, все в порядке (то есть обновление выполнено успешно). Когда я перезапускаю приложение, все появляется без каких-либо проблем (до следующего раза я звоню UpdateQuery
и нажимаю на свой DataGridView
).
Я также попытался назвать EndEdit()``and
Refresh on the
DataGridView and calling
AcceptChanges() on both the
DataSet and the respective
DataTable` - ничего не изменилось.
Обновление
Описанное поведение имеет место только после выполнения UpdateQuery
, Insert
с и Delete
сек работы без проблем (данные не обновляются корректно, никаких проблем отображения).
Update 2
Проблема также существует, когда я использую различные обработчики событий - первоначально я использовал CellClick
, я также попытался с помощью CellContentClick
и CellMouseClick
. Это даже происходит, когда я вообще не использую мышь, но использую клавиатуру для навигации в пределах DataGridView
.
Кажется, что «просто» отображение моих данных не работает, что мне не хватает? Такая же ошибка возникает во всех моих DataGridView
s, которые я использую в своей форме, независимо от того, насколько простыми или сложными являются данные, которые я запрашиваю/обновляю.
Попробуйте установить BindigSource.AllowNew = false – daniele3004
@ daniele3004 - попробовал, что не работал (как и ожидалось - почему это должно измениться?). – Gorgsenegger
Я использую BindingSource, загруженный списком или массивом. В моем случае это работает. – daniele3004