Как добавить источник данных в datagridview
Перейти к содержимому

Как добавить источник данных в datagridview

  • автор:

DataGridView, привязка данных

Есть некий эл-т DataGridView в котором в ручном режиме созданы колонки, делается это примерно так:

dataGridView.Columns.Add("Колонка 1", "Заголовок 1"); dataGridView.Columns.Add("Колонка 2", "Заголовок 2"); dataGridView.Columns.Add("Колонка 3", "Заголовок 3"); 

Как сделать так, что бы когда источник данных указан через свойство DataSource

dataGridView.DataSource = mySource; 
  • свойство A выводилось в колонке с именем «Колонка 3«
  • свойство В в колонке с именем «Колонка 2«
  • а свойство C в колонке с именем «Колонка 1«

P.S. Сейчас чтобы добиться желаемого результата приходится проходить по источнику данных в цикле и добавлять из него данных в DataGridView следующим образом:

dataGridView.Rows.Add("Значение для ячейки 1", "Значение для ячейки 2", "Значение для ячейки 3"); 

Использование списка как источника данных для DataGridView

Всем привет!
Есть List data
и myDataGridView.DataSource = data;
Имеется ~100 сообщений (уже с известным текстом), эти сообщения хранятся в data.
А так же известны номера сообщений которые необходимо будет отобразить в DataGridView, например сообщение №26,35,48,43,5,92.
Количество отображаемых сообщений могут отличаться.
Что-то на ровном месте остановился. Как в проще отобразить эти данные в DataGridView.
У меня мысль только создать таблицу в DataSet, сделать SQL запрос, и полученные данные отобразить в DataGridView.
Но боюсь мне руки оторвут за такое.
Спасибо.

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

Синхронизировать индексы источника данных (списка) и списка в ListBox
Здраствуйте уважаемые программиисты! Столкнулся с такой задачей: имеется список продуктов.

Использование данных из dataGridView для отображения на карте
Есть такая проблема. В Form1 создан gMapControl1private void gMapControl1_Load(object sender.

Как программно указать БД в качестве источника данных для DataGridView?
Как сделать это кодом а не через десигнер? Т.е. данные из бд нужно занести в DataGridView уже в.

DataGridView и добавление источника данных
В чем проблема? Есть два DataGriedView. 1. Добавляю к первому источник данных bindingSource. .

8935 / 4847 / 1886
Регистрация: 11.02.2013
Сообщений: 10,246

Покажи класс MyData
Использовать нужно BindingSource. К нему привязываешь данные, а его к DataGridView. С помощью свойства Filter задаёшь фильтр для элементов. В теме Фильтрация и поиск по таблице DataGridView уже обсуждался этот вопрос.

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

Обновление источника данных через Datagridview с Dataset
Добрые день. Есть вот такой запрос SQL по которому строится таблица в DataSet. Она выводится на.

DataGridView и отображение полей из одного и того же источника данных.
Если я создаю 2 ComboBox и назначаю им один и тот же источник данных, но разные поля для.

MSSQL stored procedure. Возможно ли использование переменной в выборе источника данных??
MSSQL stored procedure. Возможно ли использование переменной в выборе источника данных?? Пример.

Компонент отображения данных DataGridView

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

После перетаскивания компонента на страницу в его свойствах нужно выбрать позицию DataSource и Добавить источник данных проекта. Далее нужно выбрать База данных —> Набор данных —> Создать подключение —> Выбрать источник данных (PostgreSQL) (рис. 3.10, 3.11,3.12).

Выбор источника данных 95

Рис. 3.10. Выбор источника данных 95

Выбор модели данных

Рис. 3.11. Выбор модели данных

Выбор поставщика данных 96

Рис. 3.12. Выбор поставщика данных 96

При выборе поставщика ODBC указывается созданный ранее объект ODBC и задаются параметры подключения (рис. 3.13).

Настройка параметров подключения

Рис. 3.13. Настройка параметров подключения: а — для поставщика Npgsql; б — для поставщика ODBC

В проекте создаются объекты DataSet, InventoryBindingSource и InventoryTableAdapter (рис. 3.14).

При просмотре объекта InventoryBindingSource данные таблицы отображаются (рис. 3.15).

Стоит заметить, что последний способ подключения через компонент DataSet, по сути, является «оберткой» для подключения через ODBC или Npgsql. Подключение через компонент DataSet используется встроенными компонентами, например такими, как DataGridView.

Еще один немаловажный вопрос — это необходимость использовать источник данных. Его использование, безусловно, является большим плюсом, так как позволяет разработчику полностью абстрагироваться от типа СУБД.

Puc. 3.14. Создание DataSet для объекта DataGridView

Проверка правильности получения данных таблицы

Рис. 3.15. Проверка правильности получения данных таблицы

Для объекта dataGridView можно указать, будут ли редактироваться, добавляться и удаляться строки таблицы. Также возможна сортировка по любому столбцу, выбор конкретной строки. Также имеется возможность переименования столбцов и редактирования шаблона таблицы.

Как добавить источник данных в datagridview

DataGridView — стандартный GUI компонент для отображения и редактирования таблиц. Здесь коротко рассмотрены основные моменты работы с этим классом.

Перекиньте стандартным способом в форму компонент DataGridView.

DataGridView-adding.png

Источник данных при создании можно не указывать, так как DataGridView позволяет хранить данные внутри себя и добавлять/удалять их на лету, во время выполнения (runtime). После этого редактором свойств настройте поведение по умолчанию нового экземпляра DataGridView. Я обычно меняю свойства AllowUserToAddRows на false, AllowUserToDeleteRows на false, ReadOnly на true. Можно также переименовать экземпляр из dataGridView1 в что-нибудь более осмысленное, подходящее для Вашей программы.

Добавление строк и столбцов. Столбцы и строки можно добавлять во время выполнения программы (подробнее см. [1]). Пример добавления строк:

dataGridView1->Rows->Add();

Однако если назначение и структура таблицы (количество и наименование столбцов) известны заранее, то можно редактором свойств добавить столбцы. Для этого редактируют свойство Columns.

DataGridView-edit-columns.png

Стиль текста заголовка. Пример, как можно установить жирный шрифт в заголовке таблицы:

DataGridView dgv = 0 == tabControl1.SelectedIndex ? ОсновнойDGV : РезервDGV; DataGridViewCellStyle style = dgv.ColumnHeadersDefaultCellStyle; style.Font = new Font(style.Font, FontStyle.Bold); // Жирный текст 

Как поменять цвет фона заголовка и цвет шрифта:

dgv.EnableHeadersVisualStyles = false; dgv.ColumnHeadersDefaultCellStyle.BackColor = Color.Navy; dgv.ColumnHeadersDefaultCellStyle.ForeColor = Color.White;

Работа с ячейками. Обращение к ячейкам DataGridView довольно простое. Индексация столбцов (Columns) и строк (Rows) идет относительно нуля. Столбец с индексом 0 самый левый, и строка с индексом 0 самая верхняя. Количество строк можно получить через свойство RowCount. Добавляются строки методом Удаляются строки методом Rows->Add(), удаляются методом Rows->RemoveAt(номер строки). Пример добавления и удаления строк:

// Добавим в dataGridView1 4 строки: dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add(); dataGridView1->Rows->Add();

// Удалим все строки из dataGridView1:
while (0 != dataGridView1->RowCount) dataGridView1->Rows->RemoveAt(0);

Более простой способ удаления строк:

dataGridView1->Rows->Clear();

Текущая строка. Узнать номер текущей строки можно через HitTestInfo->RowIndex:

int idx = dataGridView1->HitTestInfo->RowIndex;

Установить (поменять) текущую строку можно через свойство CurrentCell (в примере устанавливаем третью текущую строку):

int idx = 2; dataGridView1->CurrentCell = dataGridView1->Rows[idx]->Cells[0];

Текущая строка помечена в таблице треугольничком:

DataGridView-current-row.png

// Необязательный шаг: отмена выделения текущей ячейки,
// чтобы она не подкрашивалась: dataGridView1->CurrentCell->Selected = false;

Вид таблицы после отмены выделения текущей ячейки:

DataGridView current cell remove selection

Изменение данных в ячейках. Менять данные в ячейках таблицы можно только тогда, когда существуют соответствующий столбец и соответствующая строка, иначе произойдет ошибка выполнения («System.ArgumentOutOfRangeException» произошло в mscorlib.dll Дополнительные сведения: Индекс за пределами диапазона. Индекс должен быть положительным числом, a его размер не должен превышать размер коллекции.). После добавления строки методом Add все значения в ячейках добавленной строки будут пустые. К ячейке таблицы можно обращаться по номеру столбца и номеру строки через свойство Value.

Пример добавления строк и заполнения таблицы:

int i = 0; //нумерация строк начинается с 0
if ( (dataGridView1->RowCount - 1)  i ) dataGridView1->Rows->Add();
// № строки добавляем в первый столбец Cells[0]: dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString();
// Текст добавим во второй столбец Cells[1]: dataGridView1->Rows[i]->Cells[1]->Value = "Текст в ячейке";
i++; //переходим к следующей строке dataGridView1->Rows[i]->Cells[0]->Value = (i+1).ToString(); .

Стиль, цвет текста. Внешний вид текста в ячейке можно менять через свойство Style. Пример изменения цвета нужной ячейки на C#:

private void msgtable(string msg, Color textcolor) < dataGridView1.Rows[rowidx].Cells[2].Style.ForeColor = textcolor; dataGridView1.Rows[rowidx].Cells[2].Value = msg; >
case TCalibReport.ITERATE_OK: msgtable("OK", Color.Green); break; .

dataGridView Cells Style ForeColor

Пример изменения шрифта ячейки на жирный:

Font font = new Font(DataGridView.DefaultFont, FontStyle.Bold); dgv.Rows[ТекущаяСтрока].Cells[ТекущийСтолбец].Style.Font = font;

Как обращаться к столбцам не по их индексу, а по имени? Нумерация строк и столбцов начинается с нуля, и когда нам нужно обратиться к конкретной ячейке строки, то это можно сделать через числовой индекс: Rows[индексстроки].Cells[индексстолбца]. Однако есть удобная возможность получить индекс столбца по имени типа столбца:

dgv.Rows[ТекущаяСтрока].Cells[УровеньУст.Index].Value = Установлено.ToString("F2", ci); dgv.Rows[ТекущаяСтрока].Cells[УровеньСчит.Index].Value = Считано.ToString("F2", ci);

В этом примере УровеньУст и УровеньСчит — типы столбцов, которые были установлены во время компиляции визуальным редактированием свойства Columns таблицы dgv. Используется свойство Index этих типов.

DataGridView Column Name

Клик на заголовке строки. Обработка клика на заголовке строки на C#:

private void dataGridView1_RowHeaderMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)

Как удалить последнюю пустую строку?

DataGridView last empty row

Ответ: после манипуляции со строками и добавления новых строк установите в false свойство AllowUserToAddRows :

dataGridView1.AllowUserToAddRows = false;

1. Все о DataGridView. Учебник site:datagridview.narod.ru.
2. C#: экспорт/импорт DataGridView в XML и HTML.

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

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