[개발] C#, .Net

[C#] DataSet 이란?

  • -
반응형

DataSet은 C#에서 데이터 관리를 위한 강력한 데이터 구조입니다. DataSet은 .NET의 System.Data 네임스페이스에 포함되어 있으며, 메모리 내에서 데이터를 관리하는 데 사용됩니다. 여러 데이터 테이블을 하나의 객체로 그룹화하여 데이터 관계를 유지하고, 데이터 소스와 독립적으로 데이터를 조작할 수 있게 합니다.

주요 특징

다중 테이블: DataSet은 여러 개의 DataTable 객체를 포함할 수 있습니다.

관계 정의: 테이블 간의 관계를 정의할 수 있습니다 (DataRelation 객체를 사용).

독립성: 데이터 소스와 독립적으로 데이터를 관리할 수 있습니다. 데이터를 데이터베이스와 동기화하거나 분리하여 사용할 수 있습니다.

XML 통합: XML 형식으로 데이터를 읽고 쓸 수 있습니다.

데이터 조작: 필터링, 정렬, 조회 등의 다양한 데이터 조작 작업을 지원합니다.

주요 구성 요소

DataSet: 데이터의 컬렉션을 나타내는 컨테이너입니다.

DataTable: DataSet 내의 단일 테이블을 나타냅니다.

DataColumn: DataTable의 열을 나타냅니다.

DataRow: DataTable의 행을 나타냅니다.

DataRelation: 두 테이블 간의 관계를 정의합니다.

 

using System;
using System.Data;

class Program
{
    static void Main()
    {
        // DataSet 생성
        DataSet dataSet = new DataSet("Library");

        // Books 테이블 생성
        DataTable booksTable = new DataTable("Books");
        booksTable.Columns.Add(new DataColumn("BookID", typeof(int)));
        booksTable.Columns.Add(new DataColumn("Title", typeof(string)));
        dataSet.Tables.Add(booksTable);

        // Authors 테이블 생성
        DataTable authorsTable = new DataTable("Authors");
        authorsTable.Columns.Add(new DataColumn("AuthorID", typeof(int)));
        authorsTable.Columns.Add(new DataColumn("Name", typeof(string)));
        dataSet.Tables.Add(authorsTable);

        // 관계 정의
        DataRelation relation = new DataRelation(
            "BookAuthor",
            authorsTable.Columns["AuthorID"],
            booksTable.Columns["BookID"]);
        dataSet.Relations.Add(relation);

        // 데이터 추가
        DataRow authorRow = authorsTable.NewRow();
        authorRow["AuthorID"] = 1;
        authorRow["Name"] = "George Orwell";
        authorsTable.Rows.Add(authorRow);

        DataRow bookRow = booksTable.NewRow();
        bookRow["BookID"] = 1;
        bookRow["Title"] = "1984";
        booksTable.Rows.Add(bookRow);

        // 데이터 출력
        foreach (DataRow row in authorsTable.Rows)
        {
            Console.WriteLine($"Author: {row["Name"]}");
            foreach (DataRow childRow in row.GetChildRows("BookAuthor"))
            {
                Console.WriteLine($"  Book: {childRow["Title"]}");
            }
        }
    }
}
반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.