Array
(
)

Ler vários result sets de um único procedure em C#

Rachel Andrade
   - 19 set 2012

Olá, gente.
Tenho um stored procedure no banco de dados SQL Server 2012 que retorna mais de um select, ou seja, vários result sets.
Como faço para obter todos esse resultados via C#? Acho que preenchendo um DataTable não dá certo, pois não se trata apenas de uma tabela, mas várias.
Grata.

Edson Oliveira
   - 21 set 2012

#Código

SqlConnection oSqlConnection = new SqlConnection(connectionString);

oSqlConnection.Open();

SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter("EXEC SUA_PROCEDURE", oSqlConnection);

DataSet oDataSet = new DataSet();

oSqlDataAdapter.Fill(oDataSet);

oSqlConnection.Close();

oDataSet.Tables[0];//Result 1
oDataSet.Tables[1];//Result 2


O seu resultado preencher a coleção de Tables dentro do DataSet.

Rachel Andrade
   - 26 set 2012

Oi, Edson. Muito obrigada pela ajuda e desculpe pela demora em responder.
Realmente eu consegui fazer da forma como você sugeriu, mas fiquei com uma dúvida: tem como as tabelas receberem nomes vindos direto do Stored Procedure. Por exemplo, suponha que meu procedimento faça select nas tabelas A, B e C. Ao preencher o DataSet, as tabelas poderiam ter os nomes A, B e C?
Grata.

Edson Oliveira
   - 27 set 2012

Eu fiz alguns testes aqui, e não achei nenhum jeito de retornar os nomes, vc vai ter que organizar as consultas na sua procedure para receber nas posições corretas no seu projeto.

Até mais