IRONSOFTWAREHOME
개발자 업데이트

C# DataTable (개발자를 위한 작동 방식 튜토리얼)

제이콥 멜러, 팀 아이언 최고기술책임자
Jacob Mellor
Updated: 2026년 4월 21일

C# DataTables에 대한 튜토리얼에 오신 것을 환영합니다. .NET framework에서 제공하는 DataTable은 데이터를 표 형식으로 저장, 조작 및 쿼리할 수 있는 강력한 데이터 구조입니다. 이 튜토리얼에서는 C#에서의 DataTables의 기본 사항, DataTables 생성 및 수정, 열과 행 추가, 데이터 쿼리, DataView을 사용한 필터링 및 정렬 등을 탐구할 것입니다.

이 튜토리얼이 끝나면 C# 애플리케이션에서 DataTables을 사용하는 방법에 대한 충분한 이해를 얻게 될 것입니다. 시작해봅시다!

DataTable 생성하기

C#에서 DataTable을 생성하려면 먼저 System.Data 네임스페이스를 가져와야 합니다. 이 네임스페이스에는 DataTable 클래스를 포함하여 데이터 조작과 관련된 다양한 클래스와 메소드가 포함되어 있습니다.

using System.Data;

다음으로, DataTable 클래스의 인스턴스를 생성할 수 있습니다. 이 작업을 수행하는 가장 간단한 방법은 기본 생성자를 사용하는 것입니다:

DataTable dt = new DataTable();

생성자에 문자열 매개변수를 전달하여 특정 이름을 가진 DataTable을 생성할 수도 있습니다:

DataTable dt = new DataTable("Employees");

DataTable 메서드

열 추가하기

DataTable을 생성한 후, 열을 추가할 수 있습니다. 열을 추가하려면 먼저 DataColumn 클래스의 인스턴스를 생성하고 ColumnNameDataType과 같은 속성을 설정해야 합니다.

DataTable에 세 개의 열을 추가하는 방법의 예를 보여 드립니다:

DataColumn idColumn = new DataColumn("Id", typeof(int));
DataColumn nameColumn = new DataColumn("Name", typeof(string));
DataColumn ageColumn = new DataColumn("Age", typeof(int));

dt.Columns.Add(idColumn);
dt.Columns.Add(nameColumn);
dt.Columns.Add(ageColumn);

데이터 테이블에 있는 Id 열과 같은 여러 열을 추가할 수 있습니다.

데이터 행 추가하기

열 정의가 완료되면 DataTable에 행을 추가하기 시작할 수 있습니다. 행을 추가하려면 DataRow 클래스의 새 인스턴스를 생성하고 필요한 데이터로 필드를 채워야 합니다.

다음은 DataTable에 새로운 행을 추가하는 방법의 예시입니다:

DataRow newRow = dt.NewRow();

newRow["Id"] = 1;
newRow["Name"] = "John Doe";
newRow["Age"] = 30;

dt.Rows.Add(newRow);

반복문 내에서 동일한 메소드를 사용하여 여러 DataTable 행을 한 번에 추가할 수도 있습니다.

for (int i = 1; i <= 3; i++)
{
    DataRow row = dt.NewRow();
    row["Id"] = i;
    row["Name"] = "Employee " + i;
    row["Age"] = 20 + i;
    dt.Rows.Add(row);
}

위의 코드에서는 세 개의 데이터 행을 추가했습니다.

데이터 접근

DataTable에 저장된 데이터에 접근하려면 RowsColumns 컬렉션을 반복하면서 접근할 수 있습니다. 다음은 콘솔에서 DataTable의 내용을 표시하는 방법에 대한 예시입니다:

foreach (DataRow row in dt.Rows)
{
    foreach (DataColumn col in dt.Columns)
    {
        Console.Write(row[col] + "\t");
    }
    Console.WriteLine();
}

데이터 수정하기

DataTable의 데이터를 수정하려면 DataRow 오브젝트의 값을 업데이트하여 수정할 수 있습니다. 특정 직원의 나이를 업데이트하는 방법의 예를 보여 드립니다:

var primaryKey = 1;
DataRow employeeRow = dt.Rows.Find(primaryKey); // Find the row with the specified primary key
if (employeeRow != null)
{
    employeeRow["Age"] = 35;
}

행 삭제하기

DataTable에서 행을 삭제하려면 DataRow 객체에서 Delete 메소드를 호출해야 합니다:

DataRow employeeRow = dt.Rows.Find(1);
if (employeeRow != null)
{
    employeeRow.Delete();
    dt.AcceptChanges(); // Commit the deletion
}

Delete을(를) DataRow에서 호출하면 해당 행이 삭제 대상으로만 표시됩니다. 삭제된 행을 영구적으로 제거하려면 DataTable에서 AcceptChanges 메소드를 호출해야 합니다.

다중 테이블 관리

일부 경우에는 여러 데이터 테이블을 동시에 작업해야 할 수 있습니다. 여러 DataTable 객체를 저장하고 그들 간의 관계를 관리하기 위해 데이터셋 변수를 만들 수 있습니다.

LINQ로 데이터 질의하기

LINQ (Language Integrated Query)는 DataTable 객체를 포함하여 다양한 데이터 소스에서 데이터를 쿼리할 수 있는 C#의 강력한 기능입니다. DataTables와 함께 LINQ를 사용하려면 System.Linq 네임스페이스를 가져와야 합니다. LINQ를 사용하여 25세 이상 직원들을 필터링하는 방법의 예를 보여 드립니다:

using System.Linq;

var filteredRows = dt.AsEnumerable().Where(row => row.Field<int>("Age") > 25);

foreach (DataRow row in filteredRows)
{
    Console.WriteLine(row["Name"]);
}

DataView: 정렬 및 필터링

DataViewSystem.Data 네임스페이스에서 제공하는 또 다른 유용한 클래스이며, DataTable의 정렬된 뷰나 필터링된 뷰를 생성할 수 있습니다. 이는 DataGridView 같은 UI 컨트롤에 데이터를 표시해야 할 때 특히 유용합니다. 또한, 데이터 바인딩을 수행하여 DataTable에서 DataGridView 컨트롤에 데이터를 추가할 수 있습니다.

직원의 나이에 따라 필터링하고 정렬할 DataView를 만드는 예시입니다:

DataView view = new DataView(dt);

// Filter employees older than 25
view.RowFilter = "Age > 25";

// Sort by age in descending order
view.Sort = "Age DESC";

// Display the filtered and sorted data
foreach (DataRowView rowView in view)
{
    DataRow row = rowView.Row;
    Console.WriteLine(row["Name"]);
}

IronPDF를 사용하여 DataTable을 PDF로 내보내기

IronPDF는 사용자 친화적인 PDF 조작 기능이 풍부한 강력한 HTML to PDF 변환기이며, 개발자가 .NET 애플리케이션 내에서 PDF 문서를 생성, 읽기 및 편집할 수 있게 해줍니다.

using IronPdf;

class Program
{
    static void Main(string[] args)
    {
        var renderer = new ChromePdfRenderer();

        // Convert HTML String to PDF
        var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
        var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
        pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");

        // Convert HTML File to PDF
        var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
        var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
        pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");

        // Convert URL to PDF
        var url = "http://ironpdf.com"; // Specify the URL
        var pdfFromUrl = renderer.RenderUrlAsPdf(url);
        pdfFromUrl.SaveAs("URLToPDF.pdf");
    }
}

이 섹션에서는 IronPDF를 사용하여 DataTable을 PDF 문서로 내보내는 방법을 배우겠습니다.

먼저 IronPDF NuGet 패키지를 설치해야 합니다. Visual Studio에서 패키지 관리자 콘솔을 열고 다음 명령어를 실행하세요:

PM > Install-Package IronPdf

패키지가 설치되면 코드에서 필요한 네임스페이스를 가져오는 것으로 시작할 수 있습니다:

using IronPdf;
using System.IO;

다음으로, DataTable을 HTML 테이블로 변환하는 도우미 메서드를 만드세요. IronPDF는 HTML을 사용하여 PDF 문서의 콘텐츠를 렌더링합니다:

public static string ConvertDataTableToHtml(DataTable dt)
{
    StringBuilder htmlBuilder = new StringBuilder();
    
    htmlBuilder.AppendLine("<table border='1' cellpadding='5' cellspacing='0'>");
    htmlBuilder.AppendLine("<tr>");
    
    // Add column headers
    foreach (DataColumn col in dt.Columns)
    {
        htmlBuilder.AppendFormat("<th>{0}</th>", col.ColumnName);
    }
    
    htmlBuilder.AppendLine("</tr>");
    
    // Add rows
    foreach (DataRow row in dt.Rows)
    {
        htmlBuilder.AppendLine("<tr>");
        
        foreach (DataColumn col in dt.Columns)
        {
            htmlBuilder.AppendFormat("<td>{0}</td>", row[col]);
        }
        
        htmlBuilder.AppendLine("</tr>");
    }
    
    htmlBuilder.AppendLine("</table>");
    
    return htmlBuilder.ToString();
}

이제 IronPDF에서 제공하는 HtmlToPdf class을 사용하여 HTML 테이블을 렌더링하고 PDF 파일로 저장할 수 있습니다:

public static void ExportDataTableToPdf(DataTable dt, string outputPath)
{
    // Convert DataTable to HTML
    string htmlTable = ConvertDataTableToHtml(dt);
    
    // Create a new HTML to PDF renderer
    var renderer = new ChromePdfRenderer();
    
    // Set global styles for the table
    renderer.RenderingOptions.CssMediaType = PdfPrintOptions.PdfCssMediaType.Print;
    renderer.RenderingOptions.FirstPageNumber = 1;
    
    // Render the HTML table as a PDF document
    PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlTable);
    
    // Save the PDF file
    pdf.SaveAs(outputPath);
}

ExportDataTableToPdf 메소드는 HTML 테이블에서 DataTable을(를) 생성하고 그것을 PDF 파일에 저장합니다.

마지막으로 적절한 매개변수를 사용하여 ExportDataTableToPdf 메소드를 호출하여 DataTable을(를) 내보내십시오:

string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);

이는 DataTable의 내용을 표 형식으로 포함한 "Employees.pdf"라는 이름의 PDF 파일을 생성할 것입니다.

C# DataTable (개발자 튜토리얼을 위한 동작 방식) - 도표 1

결론

이 튜토리얼에서 C#의 DataTables 기본 사항과 IronPDF 라이브러리를 사용하여 DataTable을(를) PDF 문서로 내보내는 방법을 배웠습니다. 기본 키 열, 데이터셋 변수 및 필터링과 정렬을 위한 DataView를 포함함으로써 데이터에 대해 더 큰 제어와 유연성을 가질 수 있습니다. 이제 C# 애플리케이션에서 전문적인 모양의 PDF 보고서를 생성하기 위해 DataTables와 IronPDF를 함께 사용하는 방법에 대한 좋은 이해를 가지고 있어야 합니다.

IronPDF는 기능을 무료로 체험할 수 있는 체험판을 제공하며 구매를 결정하기 전에 능력을 탐색할 수 있습니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.