Как заполнить datagridview c
Перейти к содержимому

Как заполнить datagridview c

  • автор:

Практическое руководство. Добавление таблиц и столбцов в элемент управления DataGrid в Windows Forms

Элемент управления DataGridView заменяет элемент управления DataGrid и расширяет его функциональные возможности; однако при необходимости элемент управления DataGrid можно сохранить для обратной совместимости и использования в будущем. Дополнительные сведения см. в разделе Различия элементов управления DataGridView и DataGrid в Windows Forms.

Данные в элементе управления DataGrid в Windows Forms можно отобразить в таблицах и столбцах, создав объекты DataGridTableStyle и добавив их в объект GridTableStylesCollection, к которому осуществляется доступ через свойство TableStyles элемента управления DataGrid. Каждый стиль таблицы управляет отображением содержимого любой таблицы данных, указанной в свойстве MappingName объекта DataGridTableStyle. По умолчанию стиль таблицы без указания стилей столбцов будет отображать все столбцы в этой таблице данных. Столбцы из таблицы можно ограничить, добавив объекты DataGridColumnStyle в объект GridColumnStylesCollection, к которому осуществляется доступ через свойство GridColumnStyles каждого объекта DataGridTableStyle.

Добавление таблицы и столбца в DataGrid программным способом

  1. Чтобы отобразить данные в таблице, необходимо сначала привязать элемент управления DataGrid к набору данных. Дополнительные сведения см. в статье Практическое руководство. Привязка элемента управления DataGrid в Windows Forms к источнику данных.

Внимание При программном указании стилей столбцов всегда создавайте объекты DataGridColumnStyle и добавляйте их в объект GridColumnStylesCollection перед добавлением объектов DataGridTableStyle в объект GridTableStylesCollection. При добавлении пустого объекта DataGridTableStyle в коллекцию объекты DataGridColumnStyle создаются автоматически. Следовательно, при попытке добавить в объект GridColumnStylesCollection новые объекты DataGridColumnStyle с повторяющимися значениями MappingName будет создано исключение.

Dim ts1 As New DataGridTableStyle() ts1.MappingName = "Customers" 
DataGridTableStyle ts1 = new DataGridTableStyle(); ts1.MappingName = "Customers"; 
DataGridTableStyle* ts1 = new DataGridTableStyle(); ts1->MappingName = S"Customers"; 
Dim myDataCol As New DataGridBoolColumn() myDataCol.HeaderText = "My New Column" myDataCol.MappingName = "Current" 
DataGridBoolColumn myDataCol = new DataGridBoolColumn(); myDataCol.HeaderText = "My New Column"; myDataCol.MappingName = "Current"; 
DataGridBoolColumn^ myDataCol = gcnew DataGridBoolColumn(); myDataCol->HeaderText = "My New Column"; myDataCol->MappingName = "Current"; 
ts1.GridColumnStyles.Add(myDataCol) 
ts1.GridColumnStyles.Add(myDataCol); 
ts1->GridColumnStyles->Add(myDataCol); 
DataGrid1.TableStyles.Add(ts1) 
dataGrid1.TableStyles.Add(ts1); 
dataGrid1->TableStyles->Add(ts1); 

См. также

  • Элемент управления DataGrid
  • Практическое руководство. Удаление или скрытие столбцов элемента управления DataGridView в Windows Forms

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

Заполнить dataGridView

Author24 — интернет-сервис помощи студентам

Создаем в определенной вкладке dataGridView, 5 на 5, теперь нужно внести массив int[,] array в этот gridView, пробовал конвертировать массив в 1 мерный, но данные через dataGridView.DataSource не отображаются.

Добавлено через 22 часа 28 минут
Даже когда происходит заполнение данными, ячейки пустые

94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Заполнить DataGridView из Excel
Добрый вечер, у меня такая проблема, хочу экспортировать данные из excel в привязанный datagrid.

Асинхронно заполнить DataGridView
есть richtextbox. с каждой строкой производится долгая функция, результат которой она вписывает в.

Как заполнить datagridview?
ListView я всегда заполнял с помощью и этого кода: private void button17_Click(object sender.

Заполнить datagridview из цикла
Здравствуйте! Как мне заполнить datagridview результатами цикла: for (int ip = min; ip <=.

557 / 534 / 225
Регистрация: 02.11.2016
Сообщений: 1,538
Можно, например, вот так:

1 2 3 4 5 6 7
for (int i = 0; i  5; i++) { for (int j = 0; j  5; j++) { dataGrid.Rows[i].Cells[j].Value = arr[i, j]; } }

Регистрация: 03.02.2017
Сообщений: 14
Так просто, а я пытался создавать DataTable-s но не получалось, спасибо, помогло!

Эксперт .NET

5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361

ЦитатаСообщение от Killiwar Посмотреть сообщение

а я пытался создавать DataTable

1 2 3 4 5 6
DataGridView dataGrid = new DataGridView(); dataGrid.Parent = someTabPage; dataGrid.Dock = DockStyle.Fill; //dataGrid.RowCount = 5; не нужно //dataGrid.ColumnCount = 5; не нужно dataGrid.DataSource = GetDataTable(array);

Метод GetDataTable:

1 2 3 4 5 6 7 8 9 10 11 12 13
DataTable GetDataTable(int[,] array) { DataTable table = new DataTable(); for (int i = 0; i  array.GetLength(1); i++) table.Columns.Add(); for (int i = 0; i  array.GetLength(0); i++) { table.Rows.Add(table.NewRow()); for (int j = 0; j  array.GetLength(1); j++) table.Rows[i][j] = array[i, j]; } return table; }

87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как заполнить массив из dataGridView?
Доброго времени суток! Пытаюсь реализовать ввод матрицы с помощью dataGridView. Нашел здесь на.

Ячейки DataGridView заполнить картинками
Хочу поле в таблице заполнить картинками. Пробую вот таким способ и что-то не особо получается.

Заполнить данными combobox в datagridview
Я новичок, не пинайте сильно. Заполняю данными dataGridView1 данными из таблицы Employees.

Заполнить DataGridView по аналогии с таблицей
DataGridView анология по примеру exсel, смысл какой, ввожу дату начала работ к примеру 01.01.15 и.

Или воспользуйтесь поиском по форуму:

Сценарии использования элементов управления DataGridView (Windows Forms)

С помощью элемента управления DataGridView можно отображать табличные данные из различных источников данных. В простых случаях можно заполнить элемент управления DataGridView данными вручную и работать с ними с его помощью напрямую. Однако обычно данные хранятся во внешнем источнике, к которому элемент управления привязывается с помощью компонента BindingSource.

В этом разделе описываются некоторые распространенные сценарии, включающие элемент управления DataGridView.

Сценарий 1. Отображение небольших объемов данных

Для отображения данных в элементе управления DataGridView их не обязательно хранить во внешнем источнике данных. Если вы работаете с небольшим объемом данных, то можете заполнить элемент управления самостоятельно и работать с данными с его помощью. Это называется режимом без привязки. Дополнительные сведения см. в статье Практическое руководство. Создание непривязанного элемента управления DataGridView в Windows Forms.

Основные особенности сценария

  • В режиме без привязки элемент управления заполняется вручную.
  • Режим без привязки особенно хорошо подходит для небольших объемов данных, доступных только для чтения.
  • Режим без привязки также подходит для электронных таблиц или разреженных таблиц.

Сценарий 2. Просмотр и обновление данных, хранящихся во внешнем источнике данных

Элемент управления DataGridView можно использовать как пользовательский интерфейс, через который пользователи могут получать доступ к данным, хранящимся в источнике данных, например таблице базы данных или коллекции бизнес-объектов. Дополнительные сведения см. в статье Практическое руководство. Привязка данных к элементу управления DataGridView в Windows Forms.

Основные особенности сценария

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

Сценарий 3. Расширенные данные

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

Например, при работе с большим объемом данных может потребоваться реализовать виртуальный режим, чтобы обеспечить оптимальную эффективность. Виртуальный режим также полезен для поддержания значений непривязанных столбцов, которые отображаются вместе со столбцами, полученными из другого источника данных.

Основные особенности сценария

  • Виртуальный режим подходит для отображения очень больших объемов данных при необходимости точной настройки производительности.

Сценарий 4. Автоматическое изменение размера строк и столбцов

Если данные регулярно обновляются, можно автоматически изменять размер строк и столбцов, чтобы отображалось все содержимое. Элемент управления DataGridView предоставляет несколько вариантов, позволяющих включать или отключать ручное изменение размера, изменять размер программным способом в определенное время или изменять размер автоматически при каждом изменении содержимого. Подробнее см. в статье Варианты изменения размеров элемента управления DataGridView в Windows Forms.

Основные особенности сценария

  • Изменение размера вручную позволяет пользователям настраивать высоту и ширину ячеек.
  • Автоматическое изменение размера позволяет поддерживать такие размеры ячеек, при которых их содержимое никогда не обрезается.
  • Программное изменение размера позволяет изменять размер ячеек в определенное время, чтобы избежать снижения производительности из-за постоянного автоматического изменения размера.

Сценарий 5. Простая настройка

Элемент управления DataGridView предоставляет множество способов изменения его внешнего вида и поведения. Подробнее см. в статье Стили ячеек элемента управления DataGridView в Windows Forms.

Основные особенности сценария

  • Объекты DataGridViewCellStyle позволяют предоставлять сведения о цвете, шрифте, форматировании и расположении на нескольких уровнях, а также для отдельных элементов.
  • Стили ячеек могут быть многоуровневыми и использоваться совместно несколькими элементами, что позволяет использовать код повторно.

Сценарий 6. Расширенная настройка

Элемент управления DataGridView предоставляет множество способов настройки его внешнего вида и поведения.

Основные особенности сценария

  • Вы можете предоставить собственный код рисования ячеек. Дополнительные сведения см. в статье Практическое руководство. Настройка внешнего вида ячеек элемента управления DataGridView в Windows Forms.
  • Вы можете предоставить собственный код рисования строк. Это полезно, например, для создания строк с содержимым, охватывающим несколько столбцов. Дополнительные сведения см. в статье Практическое руководство. Настройка внешнего вида строк элемента управления DataGridView в Windows Forms.
  • Вы можете реализовать собственные классы ячеек и столбцов для настройки внешнего вида ячеек. Дополнительные сведения см. в статье Практическое руководство. Дополнительные возможности управления внешним видом и поведением ячеек и столбцов элемента управления DataGridView в Windows Forms.
  • Вы можете реализовать собственные классы ячеек и столбцов для размещения элементов управления, отличных от предоставляемых встроенными типами столбцов. Дополнительные сведения см. в статье Практическое руководство. Размещение элементов управления в ячейках элемента управления DataGridView в Windows Forms.

См. также

  • DataGridView
  • Общие сведения об элементе управления DataGridView

Совместная работа с нами на GitHub

Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.

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

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

dgv.Rows.Add(sName, sCount); 

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

Отслеживать
1,640 2 2 золотых знака 16 16 серебряных знаков 21 21 бронзовый знак
задан 6 янв 2017 в 8:59
Александр Пузанов Александр Пузанов
2,785 5 5 золотых знаков 32 32 серебряных знака 64 64 бронзовых знака

В плане производительности. Если данных действительно много, то установите режим VirtualMode = true и обрабатывайте соответствующие события. Подробнее в MSDN. Но, полагаю, вам будет достаточно просто использовать обычную привязку данных.

6 янв 2017 в 10:42
dgv.DataSource = datarows.CopyToDataTable().DefaultView;
6 янв 2017 в 11:40
У вас хедеры для столбцов в dgv должны быть другие чем в datarows или что?
6 янв 2017 в 17:20
да неужели. w3big.com/ru/sqlite/sqlite-alias.html
9 янв 2017 в 12:36

Уважаемый Александр, вот, ИМХО, формулировка Вашего вопроса, при которой не будет ни одного возражения, а будет всеобщее удовольствие: как правильно настроить и работать с DataGridView, если структура datarow и грида различны? 🙂

17 янв 2017 в 16:35

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

В комменатриях промелькнула информация, что загрузка из DataSource не используется из-за того, что стуктура результирующего запроса отличается от структуры DataGridViev.

Это не проблема, можно ручками управлять привязываемыми колонками, выбирая, какую колонку из источника отобразить на конкретной колонке DataGridView.

 dataGridView.AutoGenerateColumns = false;//Колонки генерироваться не будут=> где-то потребуется их сгенерировать перед привязкой dataGridView.DataSource = result; dataGridView.Columns["GridColumnName"].DataPropertyName = "ResultColumnName"; 

Данные, которые не были привязаны не теряются.

Т.е, получив Row из DataGridView вы ее можете привести к нужному типу и обратится к полям, которые не были отражены.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *