Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Restituzione di più tabelle da una stored procedure

Il modo normale è ottenere tutto in una volta.

costruisci il tuo SELECT e avrai un DataSet pieno di tutte le tabelle.

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();
    }
}

se ad esempio restituisci 2 tabelle nel tuo SP, come:

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

accederesti a queste tabelle come:

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