Официальный сайт студ.городка НГТУ
Программирование и БД » [.NET и MSSQL] Заполнение данными DataGridView. 

#1  15.10.09 21:44

[.NET и MSSQL] Заполнение данными DataGridView.

Есть несколько связанных таблиц в БД. Их нужно отобразить в одном DataGridView. Суть в том, что отобразить нужно не в том же виде, в каком они лежат в базе. То есть, просто связать DataGridView с таблицей не получится, потребуется перестановка колонок и столбцов. Нужно будет отдельным методом формировать нужну структуру таблицы, а потом передавать её в DataGridView.
Теперь вопрос. Как это сделать наиболее рационально?
Моё решение: загружаю в память DataSet, в котором есть все необходимые таблицы из базы. Создаю отдельную DataTable. Формирую нужную структуру в созданной DataTable. Передаю DataGridView в качестве dataSource.
Получается, что в памяти находится не одна копия данных из базы. Это излишества.
Думаю, должен быть способ не размножать данные в памяти, а установить какие-то хитрые связи между dataGridView и загруженным DataSet.

Offline

#2  16.10.09 10:58

rzk
Профиль

Re: [.NET и MSSQL] Заполнение данными DataGridView.

почему бы не сделать SQL запрос, который будет возвращать нужную тебе "особую" таблицу?

Offline

#3  17.10.09 14:27

Re: [.NET и MSSQL] Заполнение данными DataGridView.

не... слишком неуклюжий будет запрос, если он вообще возможен.
решил сделать, не используя DataSet... то есть, напрямую к базе запрос, потом данные запроса пихать в DataTable, которую уже привязывать к DataGridView в качестве DataSource.
хотел как приятнее, а получилось как всегда :)

Offline

#4  17.10.09 20:28

$up
Профиль

Re: [.NET и MSSQL] Заполнение данными DataGridView.

я бы вьюхи сделал прямо в базе.

Offline

#5  17.10.09 21:41

Re: [.NET и MSSQL] Заполнение данными DataGridView.

del

Исправлено Muxa (17.10.09 22:05)

Offline

#6  17.10.09 22:03

Re: [.NET и MSSQL] Заполнение данными DataGridView.

Muxa, тем, что rzk говорит про то, что ты советовал сделать join'ами... то есть, получить данные из базы в нужном виде.
а мой вариант в том, что получить данные в том виде, в котором они лежат в базе(список), а на стороне клиента сформировать разряженную таблицу(DataTable) нужной структуры

Offline

#7  17.10.09 22:06

Re: [.NET и MSSQL] Заполнение данными DataGridView.

да, я уже понял из привата :)

Offline

#8  17.10.09 22:51

Re: [.NET и MSSQL] Заполнение данными DataGridView.

Таблицы в БД:
Школота
ID   Фамилия
1     Иванов
2    Петров
-----------------
Оценки
ID   Оценка  Дата   IDшкольника
1       3            06.09     1
2       5            30.09     1
3       4            03.09     2
4       4            07.09     2
---------------------------------------------
для dataGridView нужна такая "сетка" из двух таблиц:
ФИО       | 1  2  3  4  5  6  7  8 ... 30
Иванов  |                     3               5
Петров  |          4             4

получается, что для того, чтоб ID оценок присоединить к таблице dataGridView нужно делать так:

ФИО       | 1 | ID | 2 | ID | 3 | ID | 4 | ID | 5 | ID | 6 | ID | 7 | ID | 8 | ID |... 30 | ID
Иванов  |                        |    |     |                     | 3 | 1  |         |     |    |   | 5  |  2
Петров  |                        |4  | 3  |                                                | 4 | 4 |

Исправлено (int)~set::Get(); (17.10.09 22:54)

Offline

Программирование и БД » [.NET и MSSQL] Заполнение данными DataGridView. 

ФутЕр:)

© Hostel Web Group, 2002-2025.   Сообщить об ошибке

Сгенерировано за 0.029 сек.
Выполнено 14 запросов.