C#에서 DataTable 만들기

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서DataTable클래스를 사용하여 데이터 테이블 만들기
  2. C#에서 데이터 테이블에 행 추가
  3. C#에서 데이터 테이블의 데이터를 XML로 내보내기
  4. 데이터 테이블 구조를 C#에서 XML로 내보내기
C#에서 DataTable 만들기

이 자습서에서는 C#에서 데이터 테이블을 만들고 채우는 방법에 대해 설명합니다.

C#에서DataTable클래스를 사용하여 데이터 테이블 만들기

DataTable클래스는 C#에서 데이터 테이블을 생성하는 데 사용됩니다. 데이터 테이블은 C#의 관계형 데이터가있는 테이블을 나타냅니다. DataTable클래스로 데이터 테이블을 처음 생성 할 때 지정된 스키마가 없습니다. 데이터 테이블의 구조를 지정하기 위해 DataColumn클래스의 객체를 생성하고 추가해야합니다. C#의 DataTable.Columns.Add()함수를 사용하여DataColumn클래스의 객체를DataTable클래스의 객체에 추가 할 수 있습니다.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
    }
  }
}

위의 코드에서 이름이Customers인 데이터 테이블workTable을 만들고 각각 이름이Column1Column2인 두 개의 다른 열,column1column2를 생성했습니다. 두 열을 모두 추가하여workTable의 스키마를 지정했습니다. 이제 행 형태로 테이블에 데이터를 추가 할 수 있습니다.

C#에서 데이터 테이블에 행 추가

테이블에 행을 추가하려면DataRow클래스의 객체를 만들어야합니다. DataRow클래스는 C#의 테이블에 데이터를 추가 할 새 행을 정의합니다. C#의 DataTable.Row.Add()함수를 사용하여DataRow클래스의 객체를DataTable클래스의 객체에 추가 할 수 있습니다. 다음 코드 예제는 C#의DataRow클래스를 사용하여 테이블에 데이터를 추가하는 방법을 보여줍니다.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
    }
  }
}

위 코드에서workTable.NewRow()함수를 사용하여DataRow클래스의 인스턴스row1을 초기화했습니다. row1의 두 열에 대한 데이터를 추가하고 C#의workTable.Rows.Add(row1)함수를 사용하여row1workTable에 추가했습니다.

다음 접근 방식으로 테이블에 새 행을 추가 할 수도 있습니다.

object[] o = { "object value1", "object value2" };
workTable.Rows.Add(o);

위 코드에서DataRow클래스의 인스턴스를 생성하지 않고workTable테이블에 새 행을 추가했습니다. C#에서 테이블에 새 행을 삽입하는 데 사용할 수있는 또 다른 방법은 다음과 같습니다.

workTable.Rows.Add("direct value1", "direct value2");

위의 코드에서는 객체 배열을 선언하지 않고workTable테이블의 새 행에 값을 직접 추가했습니다.

C#에서 데이터 테이블의 데이터를 XML로 내보내기

이제DataTable클래스로 테이블을 만들고DataColumn클래스로 구조를 정의하고 테이블에 여러 행을 추가 했으므로 이제 테이블을 표시 할 수 있습니다. C#의DataTable.WriteXml()함수를 사용하여 전체 테이블을 xml 파일로 내보낼 수 있습니다. DataTable.WriteXml(path)함수는 테이블의 모든 데이터를path의 xml 파일에 쓰는 데 사용됩니다. 다음 코드 예제는 C#의DataTable.WriteXml()함수를 사용하여 테이블 데이터를 xml 파일에 쓰는 방법을 보여줍니다.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
      object[] o = { "object value1", "object value2" };
      workTable.Rows.Add(o);
      workTable.Rows.Add("direct value1", "direct value2");
      workTable.WriteXml("workTable.xml");
    }
  }
}

위 코드에서 우리는workTable테이블 내의 모든 데이터를 C#의workTable.WriteXml("workTable.xml")함수를 사용하여workTable.xml XML 파일로 내보냈습니다. workTable.xml파일의 내용은 다음과 같습니다.

<?xml version="1.0" standalone="yes"?>
<DocumentElement>
  <Customers>
    <Column1>value1</Column1>
    <Column2>value2</Column2>
  </Customers>
  <Customers>
    <Column1>object value1</Column1>
    <Column2>object value2</Column2>
  </Customers>
  <Customers>
    <Column1>direct value1</Column1>
    <Column2>direct value2</Column2>
  </Customers>
</DocumentElement>

데이터 테이블 구조를 C#에서 XML로 내보내기

반대로 테이블의 스키마 또는 구조 만 C#의 xml 파일로 내보낼 수도 있습니다. DataTable.WriteXmlSchema(path)함수는 데이터 테이블의 구조를path의 xml 파일에 쓰는 데 사용됩니다. 다음 코드 예제는 C#에서DataTable.WriteXmlSchema(path)함수를 사용하여 테이블의 구조를 xml 파일에 작성하는 방법을 보여줍니다.

using System.Data;

namespace data_table {
  class Program {
    static void Main(string[] args) {
      DataTable workTable = new DataTable("Customers");
      DataColumn column1 = new DataColumn("Column1");
      DataColumn column2 = new DataColumn("Column2");
      workTable.Columns.Add(column1);
      workTable.Columns.Add(column2);
      DataRow row1 = workTable.NewRow();
      row1["Column1"] = "value1";
      row1["Column2"] = "value2";
      workTable.Rows.Add(row1);
      object[] o = { "object value1", "object value2" };
      workTable.Rows.Add(o);
      workTable.Rows.Add("direct value1", "direct value2");
      workTable.WriteXml("workTable.xml");
      workTable.WriteXmlSchema("workTableSchema.xml");
    }
  }
}

위 코드에서workTable테이블의 구조를 C#의workTable.WriteXmlSchema("workTableSchema.xml")함수를 사용하여workTableSchema.xml xml 파일로 내보냈습니다. workTable.Schema.xml파일의 내용은 다음과 같습니다.

<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
  <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="Customers" msdata:UseCurrentLocale="true">
    <xs:complexType>
      <xs:choice minOccurs="0" maxOccurs="unbounded">
        <xs:element name="Customers">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Column1" type="xs:string" minOccurs="0" />
              <xs:element name="Column2" type="xs:string" minOccurs="0" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:choice>
    </xs:complexType>
  </xs:element>
</xs:schema>
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp DataTable