Heim > Datenbank > MySQL-Tutorial > Wie fülle ich ein DataSet mit einem DataReader effizient mit mehreren Tabellen?

Wie fülle ich ein DataSet mit einem DataReader effizient mit mehreren Tabellen?

Mary-Kate Olsen
Freigeben: 2024-12-29 18:37:17
Original
949 Leute haben es durchsucht

How to Efficiently Fill a DataSet with Multiple Tables Using a DataReader?

Füllen eines DataSets mit mehreren Tabellen mithilfe eines DataReaders

Wenn Sie mit einem DataSet arbeiten, das mehrere Tabellen mit Eins-zu-vielen-Beziehungen enthält, Es ist möglich, es mit einem DataReader zu füllen. Der Standardansatz, einen einzelnen DataReader zu verwenden, erfasst jedoch möglicherweise nicht Daten aus allen Tabellen.

Um diese Einschränkung zu überwinden, können Sie den folgenden Ansatz verwenden:

using System.Data;
using System.Data.SqlClient;
using System.IO;

namespace SampleApp
{
    public class DataSetWithTables
    {
        private SqlConnection connection;

        public DataSet SelectOne(int id)
        {
            DataSet result = new DataSet();
            string query = @"select * from table1; select * from table2 where table1_id = @ID;";
            using (connection = new SqlConnection("ConnectionString"))
            {
                connection.Open();
                using (SqlCommand command = new SqlCommand(query, connection))
                {
                    command.Parameters.AddWithValue("ID", id);
                    using (SqlDataReader reader = command.ExecuteReader())
                    {
                        DataTable table1 = new DataTable("Table1");
                        DataTable table2 = new DataTable("Table2");
                        table1.Load(reader);
                        if (reader.NextResult())
                        {
                            table2.Load(reader);
                        }
                        result.Tables.Add(table1);
                        result.Tables.Add(table2);
                    }
                }
                connection.Close();
            }
            return result;
        }
    }
}
Nach dem Login kopieren

In diesem Ansatz:

  1. Wir definieren eine Abfrage, die zwei SELECT-Anweisungen enthält, eine für jede Tabelle.
  2. Wir verwenden einen SqlCommand mit Parameter zum Ausführen der Abfrage.
  3. Wir führen den Befehl ExecuteReader aus und verwenden reader.NextResult(), um Daten in die zweite Tabelle zu laden.
  4. Wir erstellen zwei DataTable-Objekte, um unsere Tabellen darzustellen und zu laden Daten hinein.
  5. Wir fügen die DataTable-Objekte zum DataSet hinzu und schließen die Verbindung.

Das obige ist der detaillierte Inhalt vonWie fülle ich ein DataSet mit einem DataReader effizient mit mehreren Tabellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage