> 데이터 베이스 > MySQL 튜토리얼 > DataReader를 사용하여 여러 테이블로 DataSet을 효율적으로 채우는 방법은 무엇입니까?

DataReader를 사용하여 여러 테이블로 DataSet을 효율적으로 채우는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-12-29 18:37:17
원래의
949명이 탐색했습니다.

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

DataReader를 사용하여 여러 테이블로 DataSet 채우기

일대다 관계의 여러 테이블이 포함된 DataSet으로 작업할 때, DataReader를 사용하여 채울 수 있습니다. 그러나 단일 DataReader를 사용하는 기본 접근 방식은 모든 테이블의 데이터를 캡처하지 못할 수도 있습니다.

이 제한을 극복하려면 다음 접근 방식을 사용할 수 있습니다.

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;
        }
    }
}
로그인 후 복사

이 접근 방식에서는:

  1. 각 테이블에 하나씩 두 개의 SELECT 문을 포함하는 쿼리를 정의합니다.
  2. 쿼리를 실행하기 위한 매개 변수가 있는 SqlCommand.
  3. ExecuteReader 명령을 실행하고 reader.NextResult()를 사용하여 두 번째 테이블에 데이터를 로드합니다.
  4. 테이블과 테이블을 나타내는 두 개의 DataTable 개체를 생성합니다. 여기에 데이터를 로드합니다.
  5. DataTable 개체를 DataSet에 추가하고 연결을 닫습니다.

위 내용은 DataReader를 사용하여 여러 테이블로 DataSet을 효율적으로 채우는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿