Share via


.NET Framework 애플리케이션의 데이터 세트로 XML 데이터 읽기

참고 항목

데이터 집합 및 관련 클래스는 2000년대 초반에 적용된 레거시 .NET Framework 기술로, 응용 프로그램이 데이터베이스에서 연결이 끊어진 동안 응용 프로그램이 메모리의 데이터로 작업할 수 있도록 합니다. 사용자가 데이터를 수정하고 변경 내용을 다시 데이터베이스에 유지할 수 있도록 하는 애플리케이션에 특히 유용합니다. 데이터 세트는 매우 성공적인 기술로 입증되었지만 새 .NET 애플리케이션은 Entity Framework Core를 사용하는 것이 좋습니다. Entity Framework는 표 형식 데이터를 개체 모델로 사용하는 더 자연스러운 방법을 제공하며 더 단순한 프로그래밍 인터페이스를 제공합니다.

ADO.NET은 XML 데이터를 사용하기 위한 간단한 방법을 제공합니다. 이 연습에서는 XML 데이터를 데이터 세트에 로드하는 Windows 애플리케이션을 만듭니다. 그러면 데이터 세트가 DataGridView 컨트롤에 표시됩니다. 마지막으로 XML 파일의 콘텐츠를 기반으로 하는 XML 스키마가 입력란에 표시됩니다.

필수 조건

이 튜토리얼을 완료하려면 다음 워크로드가 설치된 Visual Studio가 필요합니다.

  • .NET 데스크톱 개발
  • 데이터 스토리지 및 처리

이를 설치하려면 Visual Studio 설치 관리자를 열고 수정하려는 Visual Studio 버전 옆에 있는 수정(또는 더 보기>수정)을 선택합니다. Visual Studio 수정을 참조하세요.

새 프로젝트 만들기

C# 또는 Visual Basic에 대한 새 Windows Forms 앱 프로젝트를 만듭니다. 프로젝트 이름을 ReadingXML로 지정합니다.

데이터 세트에 읽어올 XML 파일 생성

이 연습에서는 XML 데이터를 데이터 세트에 읽어오는 방법을 중점적으로 설명하므로 XML 파일의 콘텐츠가 제공됩니다.

  1. 프로젝트 메뉴에서 새 항목 추가를 선택합니다.

  2. XML 파일을 선택하고, 파일 이름을 authors.xml로 지정한 다음, 추가를 선택합니다.

    XML 파일이 디자이너로 로드되고 편집할 준비가 됩니다.

  3. 편집기의 XML 선언 아래에 다음 XML 데이터를 붙여넣습니다.

    <Authors_Table>
      <authors>
        <au_id>172-32-1176</au_id>
        <au_lname>White</au_lname>
        <au_fname>Johnson</au_fname>
        <phone>408 496-7223</phone>
        <address>10932 Bigge Rd.</address>
        <city>Menlo Park</city>
        <state>CA</state>
        <zip>94025</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>213-46-8915</au_id>
        <au_lname>Green</au_lname>
        <au_fname>Margie</au_fname>
        <phone>415 986-7020</phone>
        <address>309 63rd St. #411</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94618</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>238-95-7766</au_id>
        <au_lname>Carson</au_lname>
        <au_fname>Cheryl</au_fname>
        <phone>415 548-7723</phone>
        <address>589 Darwin Ln.</address>
        <city>Berkeley</city>
        <state>CA</state>
        <zip>94705</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>267-41-2394</au_id>
        <au_lname>Hunter</au_lname>
        <au_fname>Anne</au_fname>
        <phone>408 286-2428</phone>
        <address>22 Cleveland Av. #14</address>
        <city>San Jose</city>
        <state>CA</state>
        <zip>95128</zip>
        <contract>true</contract>
      </authors>
      <authors>
        <au_id>274-80-9391</au_id>
        <au_lname>Straight</au_lname>
        <au_fname>Dean</au_fname>
        <phone>415 834-2919</phone>
        <address>5420 College Av.</address>
        <city>Oakland</city>
        <state>CA</state>
        <zip>94609</zip>
        <contract>true</contract>
      </authors>
    </Authors_Table>
    
  4. 파일 메뉴에서 authors.xml 저장을 선택합니다.

사용자 인터페이스 만들기

이 애플리케이션의 사용자 인터페이스는 다음과 같이 구성됩니다.

  • XML 파일의 콘텐츠를 데이터로 표시하는 DataGridView 컨트롤.

  • XML 파일의 XML 스키마를 표시하는 TextBox 컨트롤.

  • Button 컨트롤.

    • 한 단추는 XML 파일을 데이터 세트에 읽어오고 DataGridView 컨트롤에 표시합니다.

    • 두 번째 단추는 데이터 세트에서 스키마를 추출하고 StringWriter를 통해 TextBox 컨트롤에 해당 스키마를 표시합니다.

컨트롤을 폼에 추가하려면

  1. 디자인 뷰에서 Form1을 엽니다.

  2. 도구 상자에서 다음 컨트롤을 양식으로 끌어옵니다.

  3. 다음과 같이 속성을 설정합니다.

    제어 속성 설정
    TextBox1 여러 줄 true
    ScrollBars 수직
    Button1 이름 ReadXmlButton
    Text Read XML
    Button2 이름 ShowSchemaButton
    Text Show Schema

XML 데이터를 수신하는 데이터 세트 만들기

이 단계에서는 authors라는 새 데이터 세트를 만듭니다. 데이터 세트에 관한 자세한 내용은 Visual Studio의 데이터 세트 도구를 참조하세요.

  1. 솔루션 탐색기에서 Form1의 소스 파일을 선택한 다음, 솔루션 탐색기 도구 모음에서 디자이너 보기 단추를 선택합니다.

  2. 도구 상자, 데이터 탭에서 데이터 세트Form1로 끌어옵니다.

  3. 데이터 세트 추가 대화 상자에서 형식화되지 않은 데이터 세트를 선택한 다음, 확인을 선택합니다.

    DataSet1이 구성 요소 트레이에 추가됩니다.

  4. 속성 창에서 AuthorsDataSet이름DataSetName 속성을 설정합니다.

XML 파일을 데이터 세트에 읽어오는 이벤트 처리기 만들기

XML 읽기 단추는 XML 파일을 데이터 세트에 읽어옵니다. 그런 다음, 해당 파일을 데이터 세트에 바인딩하는 속성을 DataGridView 컨트롤에서 설정합니다.

  1. 솔루션 탐색기에서 Form1을 선택한 다음, 솔루션 탐색기 도구 모음에서 뷰 디자이너 단추를 선택합니다.

  2. XML 읽기 버튼을 더블 클릭합니다.

    코드 편집기ReadXmlButton_Click 이벤트 처리기에서 열립니다.

  3. 다음 코드를 ReadXmlButton_Click 이벤트 처리기에 입력합니다.

    private void ReadXmlButton_Click(object sender, EventArgs e)
    {
        string filePath = "Complete path where you saved the XML file";
    
        AuthorsDataSet.ReadXml(filePath);
    
        dataGridView1.DataSource = AuthorsDataSet;
        dataGridView1.DataMember = "authors";
    }
    
  4. ReadXMLButton_Click 이벤트 처리기 코드에서 filepath = 항목을 올바른 경로로 변경합니다.

텍스트 상자에서 스키마를 표시하는 이벤트 처리기를 만듭니다.

스키마 표시 단추는 스키마로 채워진 StringWriter 개체를 만들고 TextBox 컨트롤에 표시됩니다.

  1. 솔루션 탐색기에서 Form1을 선택한 다음, 뷰 디자이너 단추를 선택합니다.

  2. 스키마 보기 버튼을 더블 클릭합니다.

    코드 편집기ShowSchemaButton_Click 이벤트 처리기에서 열립니다.

  3. ShowSchemaButton_Click 이벤트 처리기에 다음 코드를 붙여넣습니다.

    private void ShowSchemaButton_Click(object sender, EventArgs e)
    {
        System.IO.StringWriter swXML = new System.IO.StringWriter();
        AuthorsDataSet.WriteXmlSchema(swXML);
        textBox1.Text = swXML.ToString();
    }
    

양식 테스트

이제 양식을 테스트하여 예상대로 동작하는지 확인할 수 있습니다.

  1. F5 키를 선택하여 애플리케이션을 실행합니다.

  2. XML 읽기 단추를 선택합니다.

    DataGridView는 XML 파일의 콘텐츠를 표시합니다.

  3. 스키마 표시 단추를 선택합니다.

    입력란에 XML 파일의 XML 스키마가 표시됩니다.

다음 단계

이 연습에서는 XML 파일을 데이터 세트에 읽어오는 방법뿐만 아니라 XML 파일의 콘텐츠에 따라 스키마를 만드는 방법의 기본 사항을 알려 줍니다. 다음에 수행할 수 있는 몇 가지 작업은 다음과 같습니다.

  • 데이터 세트의 데이터를 편집하고 XML로 쓰기 저장합니다. 자세한 내용은 WriteXml를 참조하세요.

  • 데이터 세트의 데이터를 편집하고 데이터베이스에 씁니다.