Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как заполнить dataGridView из DataTable 
:(
    Опции темы
Swatch
Дата 16.2.2015, 15:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



Добрый день.

Есть на форме dataGridView с 6 полями, одно из которых невидимое.

Есть таблица в БД, в которой хранится информация. 

Как проставить соответствие столбцов в dataGridView столбцам, получаемым из БД в DataTable?

Написала так:
Код

//заполняю таблицу данными из БД
            DataTable dat_tbl = GetInfoList();
            dataGridView1.DataSource = dat_tbl;
            for (int idx = 0; idx < dat_tbl.Rows.Count; idx++)
            {
                dataGridView1[0, idx].Value = dat_tbl.Rows[idx]["COL1"];
                dataGridView1[1, idx].Value = dat_tbl.Rows[idx]["ID"];
                dataGridView1[2, idx].Value = dat_tbl.Rows[idx]["COL2"];
                dataGridView1[3, idx].Value = dat_tbl.Rows[idx]["COL3"];
                dataGridView1[4, idx].Value = dat_tbl.Rows[idx]["COL4"];
                dataGridView1[5, idx].Value = dat_tbl.Rows[idx]["COL5"];


            }


При такой реализации получаются сначала красивые столбцы, как я хочу, а после них вставляются еще раз все 6 столбцов из БД с именами столбцов из БД.

Если убрать строку 
Код
dataGridView1.DataSource = dat_tbl;
, то вообще ругается сразу на строке 
Код
dataGridView1[0, idx].Value = dat_tbl.Rows[idx]["COL1"];
 ArfumentOutOfRangeException.

Подскажите, пожалуйста, как красиво установить соответствие столбцов БД и dataGridView?

Это сообщение отредактировал(а) Swatch - 16.2.2015, 15:48
PM MAIL   Вверх
Nebel
Дата 20.2.2015, 07:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 0
Регистрация: 3.4.2007

Репутация: нет
Всего: нет




Если Вы устанавливаете источник данных в сетку

Код

dataGridView1.DataSource = dat_tbl;


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

Этот ответ добавлен с нового Винграда - http://vingrad.com
PM MAIL   Вверх
expale
Дата 22.2.2015, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 22.2.2015

Репутация: нет
Всего: нет




Модератор: Сообщение скрыто.

PM MAIL   Вверх
Swatch
Дата 27.2.2015, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 453
Регистрация: 2.7.2007

Репутация: нет
Всего: 1



А если мне надо именно ручное добавление, чтобы однозначно определить, где и какой столбец... что сделать?
PM MAIL   Вверх
sgrey
Дата 27.2.2015, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 15.4.2006

Репутация: 1
Всего: 4



Не присваивать datasource и оставить цикл...
Цитата(Swatch @ 16.2.2015,  15:05)

Если убрать строку 
Код
dataGridView1.DataSource = dat_tbl;
, то вообще ругается сразу на строке 
Код
dataGridView1[0, idx].Value = dat_tbl.Rows[idx]["COL1"];
 ArfumentOutOfRangeException.

Подскажите, пожалуйста, как красиво установить соответствие столбцов БД и dataGridView?

ругается потому что таблица пустая. Перед тем как присваивать строкам значение, их нужно добавить
в документации примеров много 

Это сообщение отредактировал(а) sgrey - 28.2.2015, 16:43
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0752 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.