방법: 데이터 집합을 데이터로 채우기

"데이터 집합을 데이터로 채운다"는 것은 실제로 데이터 집합을 구성하는 개별 DataTable 개체에 데이터를 로드하는 것을 말합니다. 데이터 테이블은 TableAdapter 쿼리를 실행하거나 데이터 어댑터(예: SqlDataAdapter) 명령을 실행하여 채웁니다.

TableAdapter를 사용할 것인지 데이터 어댑터를 사용할 것인지는 데이터 집합을 만든 방법에 따라 달라집니다. 데이터 소스 구성 마법사 같은 Visual Studio의 디자인 도구를 사용한 경우에는 데이터 집합에 TableAdapter가 포함됩니다. TableAdapter에 대한 자세한 내용은 TableAdapter 개요를 참조하십시오. 프로그래밍 방식으로 데이터 집합을 만든 경우에는 일반적으로 데이터 어댑터를 만들어 데이터 테이블에 데이터를 로드해야 합니다.

참고

데이터 소스 창에서 폼으로 항목을 끌어 올 때 데이터 테이블을 데이터로 채우는 코드가 Form_Load 이벤트 처리기에 자동으로 추가됩니다. 특정 테이블을 채우는 정확한 구문을 확인하려면 코드 편집기에서 폼을 엽니다. 폼이 로드될 때 테이블을 채우지 않으려면 이 코드를 다른 메서드로 옮기거나 완전히 제거할 수 있습니다.

TableAdapter를 사용하여 데이터 집합 채우기

TableAdapter에 대해 쿼리를 호출하여 데이터 집합의 데이터 테이블에 데이터를 로드할 수 있습니다. 채울 DataTable을 TableAdapter 쿼리에 전달합니다. 쿼리에서 매개 변수를 사용하면 이러한 매개 변수도 메서드에 전달합니다. 데이터 집합에 테이블이 여러 개 들어 있으면 테이블마다 개별 TableAdapter가 있으므로 각 테이블을 개별적으로 채워야 합니다.

참고

기본적으로 TableAdapter 쿼리를 실행할 때마다 쿼리 결과가 테이블에 로드되기 전에 테이블의 데이터가 지워집니다. TableAdapter의 ClearBeforeFill 속성을 false로 설정하면 테이블에 기존 데이터를 유지하면서 결과를 추가할 수 있습니다.

TableAdapter를 사용하여 데이터 집합을 데이터로 채우려면

  1. 코드 편집기에서 폼이나 구성 요소를 엽니다.

  2. 응용 프로그램에서 데이터 테이블에 데이터를 로드할 위치에 코드를 추가합니다. 쿼리에서 매개 변수를 사용하지 않으면 채울 DataTable을 전달합니다. 코드는 다음과 같습니다.

    Me.CustomersTableAdapter.Fill(Me.NorthwindDataSet.Customers)
    
    this.customersTableAdapter.Fill(this.northwindDataSet.Customers);
    
  3. 쿼리에서 매개 변수를 사용하면 채울 DataTable과 쿼리에 필요한 매개 변수를 전달합니다. 쿼리의 실제 매개 변수에 따라 코드는 다음과 같습니다.

    CustomersTableAdapter.FillByCity(NorthwindDataSet.Customers, "Seattle")
    CustomersTableAdapter.FillByCityAndState(NorthwindDataSet.Customers, "Seattle", "WA")
    
    customersTableAdapter.FillByCity(northwindDataSet.Customers, "Seattle");
    customersTableAdapter.FillByCityAndState(northwindDataSet.Customers, "Seattle", "WA");
    

DataAdapter를 사용하여 데이터 집합 채우기

데이터 어댑터의 Fill 메서드를 호출합니다. 그러면 어댑터가 SelectCommand 속성에서 참조된 SQL 문 또는 저장 프로시저를 실행하고 그 결과가 데이터 집합의 테이블에 채워집니다. 데이터 집합에 테이블이 여러 개 들어 있으면 테이블마다 개별 데이터 어댑터가 있으므로 각 테이블을 개별적으로 채워야 합니다.

DataAdapter를 사용하여 데이터 집합을 데이터로 채우려면

  • DataAdapterFill 메서드를 호출하여 데이터를 로드할 DataSet 또는 DataTable을 전달합니다. 예를 들면 다음과 같습니다.

    sqlDataAdapter1.Fill(dataset1.Tables("Customers"))
    
    sqlDataAdapter1.Fill(dataset1.Tables["Customers"]);
    

    일반적으로 데이터를 로드할 DataTable의 이름을 지정해야 합니다. 특정 데이터 테이블 대신 DataSet의 이름을 전달하면 Table1이라는 DataTable이 데이터 집합에 추가되고 데이터베이스의 결과와 함께 로드됩니다. 이것은 데이터 집합에 있는 기존 DataTable에 데이터를 로드하는 것과 반대됩니다. 자세한 내용은 DataAdapter에서 DataSet 채우기(ADO.NET)를 참조하십시오.

참고 항목

개념

데이터로 데이터 집합 채우기

Visual Studio에서 데이터에 컨트롤 바인딩

기타 리소스

데이터를 응용 프로그램으로 페치

데이터를 받기 위해 응용 프로그램 준비

응용 프로그램에서 데이터 편집

데이터 유효성 검사

데이터 저장