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

Я работаю над сайтом, на котором при входе пользователя в систему (первый запрос к базе данных) хранимая процедура изменяет пароль и идентификатор пользователя, а затем возвращает запись пользователя, которую я поместил в сеанс, для использования далее.

После этого я делаю второй запрос БД. он возвращает адреса пользователя, которые я положил в кеш.

Можете ли вы, пожалуйста, направить меня, есть ли какой-то способ, которым я могу получить оба набора данных (запись пользователя и его адрес из 2-й таблицы) в одной базе данных запросов.

Пожалуйста, помогите мне, я использую DAAB (введите призовую библиотеку) для доступа к данным.

Спасибо

3 ответа

Решение

Измените ваш SP, который имеет несколько операторов выбора, как в вашем случае 2. Два оператора выбора в одном SP вернут два набора записей. Проверьте в SQL Management Studio, когда вы запускаете SP, он должен показать вам несколько Grid в нижней панели.

Как только ваш SP закончен, вызовите SP из кода C# и загрузите результат в DataSet. Набор данных будет иметь две таблицы, и вы можете получить данные из другой таблицы

Вы можете написать два запроса на выборку в хранимой процедуре или выполнить два запроса один за другим. В одном запросе вы можете выполнить и получить данные в DataSet.

ExecuteDataset()

Таким образом, две таблицы будут возвращены внутри набора данных. Вы можете получить такие значения, как

dataset.tables(0) dataset.tables(1)

Спасибо

Вы ничего не получите от извлечения двух наборов результатов за один раз, но код станет более непоследовательным. Зачем вам нужно объединять две логически отдельные операции в одну? Вместо использования таких сомнительных методов вы можете использовать объединение, чтобы получить один набор результатов, который содержит все данные за один раз, но все же кажется неправильным. Я не вижу чистого способа сделать то, что вы просите, и каких-либо преимуществ, которые могут быть получены.

Другие вопросы по тегам