Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoyer plusieurs tables à partir d'une procédure stockée

La manière normale est de tout obtenir en une fois.

construisez simplement votre SELECT et vous aurez un DataSet rempli de tous les tableaux.

using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(myConnString))
{
    using (System.Data.SqlClient.SqlCommand cmd = new System.Data.SqlClient.SqlCommand())
    {
        cmd.CommandText = "myMultipleTablesSP";
        cmd.Connection = conn;
        cmd.CommandType = CommandType.StoredProcedure;

        conn.Open();

        System.Data.SqlClient.SqlDataAdapter adapter = new System.Data.SqlClient.SqlDataAdapter(cmd);

        DataSet ds = new DataSet();
        adapter.Fill(ds);

        conn.Close();
    }
}

si par exemple vous retournez 2 tables dans votre SP, comme :

SELECT * FROM [TableA];
SELECT * FROM [TableB];

vous accéderiez à ces tables en tant que :

DataTable tableA = ds.Tables[0];
DataTable tableB = ds.Tables[1];