Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Mehrere Tabellen aus einer gespeicherten Prozedur zurückgeben

Der normale Weg ist, alles auf einmal zu bekommen.

konstruieren Sie einfach Ihr SELECT 's und Sie haben ein DataSet gefüllt mit allen Tabellen.

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

wenn Sie zum Beispiel 2 Tabellen in Ihrem SP zurückgeben, wie:

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

Sie würden auf diese Tabellen zugreifen als:

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