2009-10-02 4 views
2

Je veux exécuter plusieurs requêtes select sql via 1 connexion à la base de données (SQL Server). Les requêtes contiendront des données de tables différentes, donc cela ne doit pas être fait avec sql.Puis-je combiner plusieurs requêtes de sélection dans .net afin qu'elles soient renvoyées en 1 lot?

Fondamentalement, je veux le faire follwoing

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

puis envoyer cette requête à la base de données et je veux conduire à retourner en un seul coup, alors je peux alors lire les données à l'aide de 3 datareaders. Est-ce possible en utilisant C# et sqlserver?

Est-ce possible en utilisant C# et sqlserver?

Répondre

2

GO n'est pas une instruction SQL. Vous devez donc envoyer au serveur les 3 requêtes sous la forme d'un seul lot:

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 
    } 
} 
Questions connexes