IRONSOFTWAREHOME
AKTUALNOŚCI DLA PROGRAMISTÓW

C# DataTable (samouczek dla programistów: jak to działa)

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Jacob Mellor
Updated: 21 kwietnia 2026

Witamy w tym samouczku dotyczącym tabel danych w języku C#. Struktura danych DataTable jest potężną konstrukcją zapewnianą przez .NET framework, która pozwala przechowywać, manipulować i zapytaniać dane w formacie tabelarycznym. W tym samouczku omówimy podstawy DataTables w C#, w tym tworzenie i modyfikowanie DataTables, dodawanie kolumn i wierszy, zapytania do danych oraz użycie DataView do filtrowania i sortowania.

Pod koniec tego samouczka będziesz mieć dobre zrozumienie, jak używać DataTables w swoich aplikacjach C#. Zaczynamy!

Tworzenie tabeli danych

Aby utworzyć DataTable w C#, najpierw musisz zaimportować przestrzeń nazw System.Data. Ta przestrzeń nazw zawiera różne klasy i metody związane z manipulacją danymi, w tym klasę DataTable.

using System.Data;

Następnie możesz utworzyć instancję klasy DataTable. Najprostszym sposobem na to jest użycie domyślnego konstruktóra, na przykład:

DataTable dt = new DataTable();

Możesz również utworzyć DataTable z określoną nazwą, przekazując ciąg znaków do konstruktora:

DataTable dt = new DataTable("Employees");

Metody DataTable

Dodawanie kolumn

Po utworzeniu tabeli DataTable można zacząć dodawać do niej kolumny. Aby dodać kolumnę, najpierw musisz stworzyć instancję klasy DataColumn i ustawić jej właściwości, takie jak ColumnName i DataType.

Oto przykład dodania trzech kolumn do tabeli 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);

Możesz dodać wiele kolumn jak kolumna Id w tabeli danych.

Dodawanie wierszy danych

Po zdefiniowaniu kolumn możesz zacząć dodawać wiersze do DataTable. Aby dodać wiersz, musisz stworzyć nową instancję klasy DataRow i wypełnić jej pola wymaganymi danymi.

Oto przykład, jak dodać nowy wiersz do DataTable:

DataRow newRow = dt.NewRow();

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

dt.Rows.Add(newRow);

Możesz również dodać wiele wierszy DataTable naraz, używając tej samej metody w pętli.

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);
}

W powyższym kodzie dodaliśmy trzy wiersze danych.

Dostęp do danych

Możesz uzyskać dostęp do danych przechowywanych w DataTable, iterując po jego kolekcjach Rows i Columns. Oto przykład, jak wyświetlić zawartość DataTable w konsoli:

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

Modyfikowanie danych

Możesz modyfikować dane w DataTable, aktualizując wartości w jego obiektach DataRow. Oto przykład aktualizacji wieku konkretnego pracownika:

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

Usuwanie wierszy

Możesz usunąć wiersz z DataTable, wywołując metodę Delete na obiekcie DataRow:

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

Pamiętaj, że wywołanie Delete na DataRow tylko oznacza wiersz do usunięcia. Musisz wywołać metodę AcceptChanges na DataTable, aby trwale usunąć usunięte wiersze.

Zarządzanie wieloma tabelami

W niektórych przypadkach może zaistnieć potrzeba pracy z wieloma tabelami danych jednocześnie. Można utworzyć zmienną typu dataset, aby przechowywać kilka obiektów DataTable i zarządzać relacjami między nimi.

Wypytywanie danych za pomocą LINQ

LINQ (Language Integrated Query) to potężna funkcja w C#, która pozwala na zapytań dane z różnych źródeł danych, w tym obiektów DataTable. Aby używać LINQ z DataTables, musisz zaimportować przestrzeń nazw System.Linq. Oto przykład filtrowania pracowników powyżej 25 roku życia przy użyciu LINQ:

using System.Linq;

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

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

DataView: Sortowanie i filtrowanie

DataView to kolejna użyteczna klasa zapewniana przez przestrzeń nazw System.Data, która pozwala tworzyć posortowany lub przefiltrowany widok DataTable. To jest szczególnie przydatne, gdy musisz wyświetlić dane w kontrolce interfejsu użytkownika, takiej jak DataGridView. Możemy również wykonywać wiązanie danych, aby dodać dane do kontrolki DataGridView z DataTable.

Oto przykład tworzenia widoku DataView w celu filtrowania i sortowania pracowników na podstawie ich wieku:

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"]);
}

Eksportowanie tabeli danych do formatu PDF za pomocą IronPDF

IronPDF to potężny konwerter HTML na PDF, wyposażony w przyjazne dla użytkownika funkcje edycji plików PDF, umożliwiające programistom tworzenie, odczytywanie i edytowanie dokumentów PDF w aplikacjach .NET.

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");
    }
}

W tej sekcji nauczymy się, jak eksportować DataTable do dokumentu PDF za pomocą IronPDF.

Najpierw należy zainstalować pakiet IronPDF NuGet. Otwórz konsolę menedżera pakietów w Visual Studio i uruchom następujące polecenie:

PM > Install-Package IronPdf

Po zainstalowaniu pakietu można rozpocząć od zaimportowania niezbędnych przestrzeni nazw do kodu:

using IronPdf;
using System.IO;

Następnie utwórz metodę pomocniczą, która konwertuje DataTable na tabelę HTML, ponieważ IronPDF używa HTML do renderowania treści w dokumentach 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();
}

Teraz możesz użyć HtmlToPdf class zapewnionej przez IronPDF, aby renderować tabelę HTML i zapisać ją jako plik 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);
}

Metoda ExportDataTableToPdf tworzy DataTable z tabeli HTML i zapisuje ją do pliku PDF.

Na koniec, wywołaj metodę ExportDataTableToPdf z odpowiednimi parametrami, aby wyeksportować swój DataTable:

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

To stworzy plik PDF o nazwie "Employees.pdf", zawierający zawartość twojego DataTable w formacie tabelarycznym.

C# DataTable (Jak to działa dla deweloperów - Samouczek) - Rysunek 1

Wnioski

W tym samouczku nauczyłeś się podstaw DataTables w C# i jak eksportować DataTable do dokumentu PDF za pomocą biblioteki IronPDF. Dzięki wykorzystaniu kolumny klucza głównego, zmiennych zestawu danych oraz DataView do filtrowania i sortowania zyskasz większą kontrolę i elastyczność w zakresie danych. Teraz powinieneś dobrze rozumieć działanie DataTables oraz sposób wykorzystania IronPDF w połączeniu z DataTables do tworzenia profesjonalnie wyglądających raportów PDF w aplikacjach napisanych w języku C#.

IronPDF oferuje bezpłatną wersję próbną swoich funkcji, co pozwala zapoznać się z możliwościami programu przed podjęciem decyzji o zakupie.

Jacob Mellor, Dyrektor Technologiczny @ Team Iron
Dyrektor ds. technologii

Jacob Mellor jest Chief Technology Officer w Iron Software i wizjonerskim inżynierem, pionierem technologii C# PDF. Jako pierwotny deweloper głównej bazy kodowej Iron Software, kształtuje architekturę produktów firmy od jej początku, przekształcając ją wspólnie z CEO Cameron Rimington w firmę liczącą ponad 50 osób, obsługującą NASA, Teslę i światowe agencje rządowe.

...
Czytaj więcej

Powiązane artykuły

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta