Страницы

Поиск по вопросам

воскресенье, 22 декабря 2019 г.

C#.Заполнение DatagrirView

#c_sharp #winforms


Всем привет.  Как правильно настроить и работать с DataGridView, если структура datarow
и грида различны? На данный момент заполняю грид методом Add(). Приведу пример кода:

dgv.Rows.Add(sName, sCount);


Данные для добавления берутся из datarow []. Подскажите, пожалуйста, можно ли заполнить
грид быстрее?
    


Ответы

Ответ 1



В комменатриях промелькнула информация, что загрузка из DataSource не используется из-за того, что стуктура результирующего запроса отличается от структуры DataGridViev. Это не проблема, можно ручками управлять привязываемыми колонками, выбирая, какую колонку из источника отобразить на конкретной колонке DataGridView. dataGridView.AutoGenerateColumns = false;//Колонки генерироваться не будут=> где-то потребуется их сгенерировать перед привязкой dataGridView.DataSource = result; dataGridView.Columns["GridColumnName"].DataPropertyName = "ResultColumnName"; Данные, которые не были привязаны не теряются. Т.е, получив Row из DataGridView вы ее можете привести к нужному типу и обратится к полям, которые не были отражены.

Ответ 2



В идеале ДатаГрид или ДатаГридВью валью не должны заполнятся в принципе. В идеале нужно переключить в режим виртуального ( VirtualMode = true ) и подгружать данные напрямую с любого соурса данных. Будь то датасет, аррей стрингов, лист кастомных обьектов иль что еще. То есть в dataGridView1_NewRowNeeded пишешь каким именно макаром нужно доставать и обрабатывать данные. И все ли нужно вставлять из реально имеющихся данных. В том числе можно подгружать данные напрямую с SQL.

Комментариев нет:

Отправить комментарий