Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Как загрузить в DataSet все таблицы БД...


Автор: FatherFrost 23.1.2006, 15:06
Никак не пойму как загрузить данные из всех таблиц в датасет. Во всех примерах при создании SqlDataAdapter указывается запрос на выборку из одной таблицы...

Автор: HalkaR 23.1.2006, 15:26
Нескольк раз создаешь датадаптер с новым запросом и делаешь fill датасета.

Автор: FatherFrost 23.1.2006, 15:46
Блин... Как-то некрасиво... А если использовать запрос по нескольким таблицам без всяких ограничений???
Добавлено @ 15:52
В рамках данного вопроса столкнулся с проблемой как лучше работать со связанными таблицами. Я ведь могу их связать в рамках запроса для создания дата адптера, а могу потом в рамках дата сета связать таблицы... Посоветуйте, какой из этих вариантов более рациональный и правильный...

Автор: -ser- 24.1.2006, 10:51
Цитата
Никак не пойму как загрузить данные из всех таблиц в датасет

изначально глупейшая идея во всех отношениях.

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

Цитата

SqlDataAdapter указывается запрос на выборку из одной таблицы...
там указывается стандартный Sql запрос. связывай сколько захочешь.


Автор: arilou 24.1.2006, 11:32
Цитата(HalkaR @ 23.1.2006, 15:26 Найти цитируемый пост)

Нескольк раз создаешь датадаптер с новым запросом и делаешь fill датасета.

В случае SQL Server можно сделать запрос вот так:

Код

select * from table1;
select * from table2;
select * from table3;


И выполнить DataAdapter.Fill(DataSet).

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

Автор: FatherFrost 24.1.2006, 14:33
-ser- Я спрашивал только с точки зрения научного интереса....
А так я начал работать с БД, как ты и говоришь (т.е. селект по нескольким таблицам)

Большое спасибо за советы и разъяснения...

Автор: bas 24.1.2006, 15:14
Цитата(arilou @ 24.1.2006, 11:32 Найти цитируемый пост)

И выполнить DataAdapter.Fill(DataSet).

Только если структуры одинаковые
Цитата(FatherFrost @ 24.1.2006, 14:33 Найти цитируемый пост)

как ты и говоришь (т.е. селект по нескольким таблицам)

Основы SQL не мещает изучит (
Код

union ,join ....
)

Автор: arilou 24.1.2006, 16:27
Цитата(bas @ 24.1.2006, 15:14 Найти цитируемый пост)

Только если структуры одинаковые

Не понял, причем тут union и join? Вопрос о том, как заполнить DATASET данными из нескольких таблиц, а не объединить выборки из нескольких таблиц в одну.
Добавлено @ 16:28
FatherFrost
Таков был твой вопрос?

Автор: FatherFrost 25.1.2006, 09:01
bas Во первых конструкция JOIN (INNER, LEFT, RIGHT) является частью селекта.... Во вторых твои комментариии как-то несовсе м в тему smile Да и UNION используется также с селектом... А фраза селект по нескольким таблицам не обязательно подразумевает указание связи на уровне условий отбора... Хотя данный метод широко применяется в легковесных СУБД (MySQL до 4 версии)

arilou В принципе ты прав. Хотя второе меня также интересовало.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)