Могу ли я объединить несколько запросов на выборку в .net, чтобы они возвращались в 1 пакете? - PullRequest
2 голосов
/ 03 октября 2009

Я хочу выполнить несколько запросов sql select через 1 соединение с базой данных (SQL Server). Запросы будут содержать разные данные таблиц, поэтому это нельзя делать с помощью sql.

В основном я хочу сделать это следующим образом

select * from Table1
Go
Select * from Table2
Go
Select * from Table3

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

Возможно ли это с помощью c # и sqlserver?

Ответы [ 3 ]

2 голосов
/ 03 октября 2009
2 голосов
/ 03 октября 2009

GO не является оператором SQL. Таким образом, вы должны отправить на сервер 3 запроса в виде одного пакета:

SqlCommand cmd = new SqlCommand(
@"select * from Table1;
select * from Table2;
select * from Table3;", connection);
using (SqlDataReader rdr = cmd.ExecuteReader())
{
   while (rdr.Read())
   {
     //read results from Table1
   };
   rdr.NextResult();
   while(rdr.Read())
   {
    //read results from Table2
   }
   rdr.NextResult();
   while(rdr.Read())
   {
     //read results from Table3
   }
 }
2 голосов
/ 03 октября 2009

Вы можете использовать несколько активных наборов результатов: http://www.codeguru.com/csharp/csharp/cs_network/database/article.php/c8715

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...