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

Returnerer flere tabeller fra en lagret procedure

Den normale måde er at få det hele på én gang.

bare konstruer din SELECT 's og du vil have et DataSet fyldt med alle tabeller.

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

hvis du for eksempel returnerer 2 tabeller i din SP, som:

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

du vil få adgang til disse tabeller som:

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


  1. Hvordan ved du, hvad et godt indeks er?

  2. PostGIS i aktion

  3. problem med at bruge Oracle-parametre i SELECT IN

  4. Sådan fremskyndes SQL-forespørgsler