방법: 데이터 원본에 Windows Forms DataGrid 컨트롤 바인딩

참고

DataGridView 컨트롤은 DataGrid 컨트롤을 대체하고 여기에 다른 기능을 추가하여 새로 도입된 컨트롤이지만 이전 버전과의 호환성 및 이후 사용 가능성을 고려하여 DataGrid 컨트롤을 계속 유지하도록 선택할 수 있습니다. 자세한 내용은 Windows Forms DataGridView 컨트롤과 DataGrid 컨트롤의 차이점을 참조하세요.

Windows Forms DataGrid 컨트롤은 데이터 원본의 정보를 표시하도록 특별히 설계되었습니다. SetDataBinding 메서드를 호출하여 런타임에 컨트롤을 바인딩합니다. 다양한 데이터 원본의 데이터를 표시할 수 있지만 가장 일반적인 원본은 데이터 세트 및 데이터 뷰입니다.

DataGrid 컨트롤을 프로그래밍 방식으로 데이터 바인딩하려면

  1. 데이터 세트를 채우는 코드를 작성합니다.

    데이터 원본이 데이터 세트 또는 데이터 세트 테이블을 기반으로 하는 데이터 뷰인 경우 양식에 코드를 추가하여 데이터 세트를 채웁니다.

    사용하는 정확한 코드는 데이터 세트가 데이터를 가져오는 위치에 따라 달라집니다. 데이터 세트가 데이터베이스에서 직접 채워지는 경우 일반적으로 다음 예제와 같이 데이터 어댑터의 Fill 메서드를 호출하여 DsCategories1 데이터 세트를 채웁니다.

    sqlDataAdapter1.Fill(DsCategories1)  
    
    sqlDataAdapter1.Fill(DsCategories1);  
    
    sqlDataAdapter1->Fill(dsCategories1);  
    

    데이터 세트가 XML 웹 서비스에서 채워지는 경우 일반적으로 코드에서 서비스의 인스턴스를 만든 다음 해당 메서드 중 하나를 호출하여 데이터 세트를 반환합니다. 그런 다음 XML 웹 서비스의 데이터 세트를 로컬 데이터 세트에 병합합니다. 다음 예제에서는 CategoriesService라는 XML 웹 서비스의 인스턴스를 만들고, GetCategories 메서드를 호출하고, 결과 데이터 세트를 DsCategories1이라는 로컬 데이터 세트에 병합하는 방법을 보여 줍니다.

    Dim ws As New MyProject.localhost.CategoriesService()  
    ws.Credentials = System.Net.CredentialCache.DefaultCredentials  
    DsCategories1.Merge(ws.GetCategories())  
    
    MyProject.localhost.CategoriesService ws = new MyProject.localhost.CategoriesService();  
    ws.Credentials = System.Net.CredentialCache.DefaultCredentials;  
    DsCategories1.Merge(ws.GetCategories());  
    
    MyProject::localhost::CategoriesService^ ws =
       new MyProject::localhost::CategoriesService();  
    ws->Credentials = System::Net::CredentialCache::DefaultCredentials;  
    dsCategories1->Merge(ws->GetCategories());  
    
  2. DataGrid 컨트롤의 SetDataBinding 메서드를 호출하여 데이터 원본 및 데이터 멤버를 전달합니다. 데이터 멤버를 명시적으로 전달할 필요가 없는 경우 빈 문자열을 전달합니다.

    참고

    그리드를 처음으로 바인딩하는 경우 컨트롤의 DataSourceDataMember 속성을 설정할 수 있습니다. 그러나 이러한 속성이 설정된 후에는 다시 설정할 수 없습니다. 따라서 항상 SetDataBinding 메서드를 사용하는 것이 좋습니다.

    다음 예제에서는 DsCustomers1이라는 데이터 세트의 Customers 테이블에 프로그래밍 방식으로 바인딩하는 방법을 보여 줍니다.

    DataGrid1.SetDataBinding(DsCustomers1, "Customers")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "Customers");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "Customers");  
    

    Customers 테이블이 데이터 세트의 유일한 테이블인 경우 다음과 같이 그리드를 바인딩할 수도 있습니다.

    DataGrid1.SetDataBinding(DsCustomers1, "")  
    
    DataGrid1.SetDataBinding(DsCustomers1, "");  
    
    dataGrid1->SetDataBinding(dsCustomers1, "");  
    
  3. (선택 사항) 표에 적절한 표 스타일 및 열 스타일을 추가합니다. 표 스타일이 없으면 표가 표시되지만 최소한의 서식과 함께 모든 열이 표시됩니다.

참고 항목