Настройте связанный вид данных - PullRequest
4 голосов
/ 16 февраля 2010

Привет, используя win2008 winforms.

Я хочу иметь возможность использовать слегка настроенное представление данных, но не могу придумать, как это сделать.

у меня есть 1. sqldataadaptor заполнить набор данных 2. источник привязки, связанный с набором данных 3 сетевое представление с источником связывания, установленным в качестве источника данных.

Я хочу, чтобы привязка позволила синхронизировать набор данных и представление данных, чтобы я мог редактировать данные и затем обновлять базу данных с помощью sqldataadaptor. обновить.

Я хочу показать некоторые пользовательские столбцы, которые являются расчетными результатами. И я хочу показать заключительную нижнюю строку, которая является итогом всех столбцов в DVG.

Моя проблема в том, что после того, как DGV привязан, я не могу добавить пользовательский столбец или строку, это не позволит мне. Я знаю, что мог бы добавить его непосредственно к набору данных, который является базовым источником данных, но затем, изменив структуру набора данных, я не могу обновить базу данных после внесения изменений.

или могу я ???

Может кто-нибудь сказать мне, как я могу добавить свои собственные столбцы и итоговую итоговую строку в связанный DGV.

Кроме того, пока я здесь, если я нажму на верхнюю часть столбца для сортировки по нему, в связанном DGV, будет ли он также пересортировать базовый набор данных, так что я буду редактировать, что все равно будет синхронизироваться?

Заранее спасибо за любую помощь

Ответы [ 2 ]

1 голос
/ 22 февраля 2010

Да, вы можете.

Адаптер не заботится о структуре. Он заботится только об именах столбцов, используемых в командах Select / Insert / Update / Delete. Вы можете добавить пользовательские столбцы, столбцы выражений, столбцы для промежуточных итогов, столбцы для итогов или все, что вам нужно. Даже изменить порядок столбцов. Я советую добавить столбец сортировки, чтобы вы могли сохранять пользовательские строки в нужном месте, когда вы или пользователь сортируете.

Вы можете сделать то же самое для пользовательских строк. При обновлении через адаптер вы обрабатываете событие RowUpdating и задаете для SqlRowUpdatingEventArgs.Status значение SkipCurrentRow для этих пользовательских строк. Я настоятельно рекомендую создать столбец с типом строки, чтобы вы знали, какие строки пропустить при обновлении. (Вы также можете использовать значение столбца сортировки в качестве ключа для пропуска строк.)

Есть несколько статей на MSDN или KB, которые иллюстрируют, как добавить общее количество строк.

  • " Как суммировать поля в элементе управления DataGrid Windows Forms и затем отображать вычисленные итоги в нижнем колонтитуле с помощью Visual Basic .NET " в http://support.microsoft.com/kb/836672.

По моему опыту, манипулируйте таблицей данных перед привязкой. Делайте то, что вам нужно, чтобы поддерживать сетку и интерфейс сетки. Можно манипулировать данными, добавлять / изменять / удалять столбцы и строки, а затем выполнять повторную привязку при необходимости.

0 голосов
/ 18 февраля 2010

Чтобы иметь возможность добавить дополнительные несвязанные столбцы к вашему DataGridView, вы также можете установить для его свойства AutoGenerateColumns значение false, а затем добавить пользовательские столбцы следующим способом:

dataGridView->Columns->Add(...)

Чтобы вычислить содержимое несвязанных столбцов, вы можете обработать события CellValueNeeded и CellValuePushed, но вы должны установить DataGridView в «виртуальный режим», установив для свойства VirtualMode значение true для обработчиков событий. быть вызванным.

Надеюсь, это немного поможет ....

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