#1 15.10.09 21:44
[.NET и MSSQL] Заполнение данными DataGridView.
Есть несколько связанных таблиц в БД. Их нужно отобразить в одном DataGridView. Суть в том, что отобразить нужно не в том же виде, в каком они лежат в базе. То есть, просто связать DataGridView с таблицей не получится, потребуется перестановка колонок и столбцов. Нужно будет отдельным методом формировать нужну структуру таблицы, а потом передавать её в DataGridView.
Теперь вопрос. Как это сделать наиболее рационально?
Моё решение: загружаю в память DataSet, в котором есть все необходимые таблицы из базы. Создаю отдельную DataTable. Формирую нужную структуру в созданной DataTable. Передаю DataGridView в качестве dataSource.
Получается, что в памяти находится не одна копия данных из базы. Это излишества.
Думаю, должен быть способ не размножать данные в памяти, а установить какие-то хитрые связи между dataGridView и загруженным DataSet.
Offline
#3 17.10.09 14:27
Re: [.NET и MSSQL] Заполнение данными DataGridView.
не... слишком неуклюжий будет запрос, если он вообще возможен.
решил сделать, не используя DataSet... то есть, напрямую к базе запрос, потом данные запроса пихать в DataTable, которую уже привязывать к DataGridView в качестве DataSource.
хотел как приятнее, а получилось как всегда :)
Offline
#6 17.10.09 22:03
Re: [.NET и MSSQL] Заполнение данными DataGridView.
Muxa, тем, что rzk говорит про то, что ты советовал сделать join'ами... то есть, получить данные из базы в нужном виде.
а мой вариант в том, что получить данные в том виде, в котором они лежат в базе(список), а на стороне клиента сформировать разряженную таблицу(DataTable) нужной структуры
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

