Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Mengisi Set Data dengan Berbilang Jadual Menggunakan DataReader dengan Cekap?

Bagaimana untuk Mengisi Set Data dengan Berbilang Jadual Menggunakan DataReader dengan Cekap?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-29 18:37:17964semak imbas

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

Mengisi Set Data dengan Berbilang Jadual Menggunakan Pembaca Data

Apabila bekerja dengan Set Data yang mengandungi berbilang jadual dengan perhubungan satu-dengan-banyak, adalah mungkin untuk mengisinya menggunakan DataReader. Walau bagaimanapun, pendekatan lalai menggunakan satu DataReader mungkin tidak menangkap data daripada semua jadual.

Untuk mengatasi had ini, anda boleh menggunakan pendekatan berikut:

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

Dalam pendekatan ini:

  1. Kami mentakrifkan pertanyaan yang merangkumi dua pernyataan SELECT, satu untuk setiap jadual.
  2. Kami menggunakan SqlCommand dengan parameter untuk melaksanakan pertanyaan.
  3. Kami melaksanakan perintah ExecuteReader dan menggunakan reader.NextResult() untuk memuatkan data ke dalam jadual kedua.
  4. Kami mencipta dua objek DataTable untuk mewakili jadual kami dan muatkan data ke dalamnya.
  5. Kami menambah objek DataTable pada DataSet dan menutup sambungannya.

Atas ialah kandungan terperinci Bagaimana untuk Mengisi Set Data dengan Berbilang Jadual Menggunakan DataReader dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn