Zum Fußzeileninhalt springen
.NET HILFE

C# DataTable (Wie es für Entwickler funktioniert Tutorial)

Willkommen zu diesem Tutorial über C# DataTables. Ein DataTable ist eine leistungsstarke Datenstruktur, die vom .NET Framework bereitgestellt wird und es Ihnen ermöglicht, Daten in einem tabellarischen Format zu speichern, zu manipulieren und abzufragen. In diesem Tutorial werden wir die Grundlagen von DataTables in C# erkunden, einschließlich Erstellen und Ändern von DataTables, Hinzufügen von Spalten und Zeilen, Abfragen von Daten und die Verwendung von DataView zum Filtern und Sortieren.

Am Ende dieses Tutorials werden Sie ein gutes Verständnis dafür haben, wie Sie DataTables in Ihren C#-Anwendungen verwenden können. Legen wir los!

Erstellen einer DataTable

Um ein DataTable in C# zu erstellen, müssen Sie zuerst den Namespace System.Data importieren. Dieser Namespace enthält verschiedene Klassen und Methoden zur Datenmanipulation, einschließlich der DataTable-Klasse.

using System.Data;
using System.Data;
$vbLabelText   $csharpLabel

Als nächstes können Sie eine Instanz der DataTable-Klasse erstellen. Der einfachste Weg, dies zu tun, ist die Verwendung des Standardkonstruktors, wie folgt:

DataTable dt = new DataTable();
DataTable dt = new DataTable();
$vbLabelText   $csharpLabel

Sie können auch ein DataTable mit einem bestimmten Namen erstellen, indem Sie dem Konstruktor einen Zeichenfolgenparameter übergeben:

DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
$vbLabelText   $csharpLabel

DataTable-Methoden

Spalten hinzufügen

Sobald Sie ein DataTable erstellt haben, können Sie damit beginnen, Spalten hinzuzufügen. Um eine Spalte hinzuzufügen, müssen Sie zuerst eine Instanz der DataColumn-Klasse erstellen und ihre Eigenschaften festlegen, wie ColumnName und DataType.

Hier ist ein Beispiel, wie man drei Spalten zu einem DataTable hinzufügt:

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);
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);
$vbLabelText   $csharpLabel

Sie können mehrere Spalten wie die Id-Spalte in der Datentabelle hinzufügen.

Hinzufügen von Datenzeilen

Nach der Definition der Spalten können Sie damit beginnen, Zeilen zum DataTable hinzuzufügen. Um eine Zeile hinzuzufügen, müssen Sie eine neue Instanz der DataRow-Klasse erstellen und ihre Felder mit den erforderlichen Daten befüllen.

Hier ist ein Beispiel, wie man eine neue Zeile zu einem DataTable hinzufügt:

DataRow newRow = dt.NewRow();

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

dt.Rows.Add(newRow);
DataRow newRow = dt.NewRow();

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

dt.Rows.Add(newRow);
$vbLabelText   $csharpLabel

Sie können auch mehrere DataTable-Zeilen gleichzeitig hinzufügen, indem Sie dieselbe Methode in einer Schleife verwenden.

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);
}
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);
}
$vbLabelText   $csharpLabel

Im obigen Code haben wir drei Datenzeilen hinzugefügt.

Zugriff auf Daten

Sie können auf die im DataTable gespeicherten Daten zugreifen, indem Sie durch ihre Rows- und Columns-Sammlungen iterieren. Hier ist ein Beispiel, wie man den Inhalt eines DataTable in der Konsole anzeigt:

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

Daten modifizieren

Sie können die Daten in einem DataTable ändern, indem Sie die Werte in seinen DataRow-Objekten aktualisieren. Hier ist ein Beispiel, wie man das Alter eines bestimmten Mitarbeiters aktualisiert:

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

Löschen von Zeilen

Sie können eine Zeile aus einem DataTable löschen, indem Sie die Delete-Methode auf einem DataRow-Objekt aufrufen:

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

Beachten Sie, dass das Aufrufen von Delete auf einem DataRow die Zeile nur zum Löschen markiert. Sie müssen die AcceptChanges-Methode auf dem DataTable aufrufen, um die gelöschten Zeilen dauerhaft zu entfernen.

Verwaltung mehrerer Tabellen

In einigen Fällen müssen Sie möglicherweise mit mehreren Datentabellen gleichzeitig arbeiten. Sie können eine Dataset-Variable erstellen, um mehrere DataTable-Objekte zu speichern und die Beziehungen zwischen ihnen zu verwalten.

Datenabfrage mit LINQ

LINQ (Language Integrated Query) ist eine leistungsstarke Funktion in C#, mit der Sie Daten aus verschiedenen Datenquellen, einschließlich DataTable-Objekten, abfragen können. Um LINQ mit DataTables zu verwenden, müssen Sie den Namespace System.Linq importieren. Hier ist ein Beispiel, wie man Mitarbeiter über 25 mit LINQ filtert:

using System.Linq;

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

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

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

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

DataView: Sortieren und Filtern

DataView ist eine weitere nützliche Klasse, die vom Namespace System.Data bereitgestellt wird und mit der Sie eine sortierte oder gefilterte Ansicht eines DataTable erstellen können. Dies ist besonders nützlich, wenn Sie die Daten in einem UI-Steuerelement wie einem DataGridView anzeigen müssen. Wir können auch Datenbindung verwenden, um Daten mit einer DataTable dem DataGridView-Steuerelement hinzuzufügen.

Hier ist ein Beispiel, wie man eine DataView erstellt, um die Mitarbeiter basierend auf ihrem Alter zu filtern und zu sortieren:

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

Exportieren von DataTable in PDF mit IronPDF

IronPDF ist ein leistungsstarker HTML nach PDF Konverter, komplett mit benutzerfreundlichen PDF-Manipulationsfunktionen, die es Entwicklern ermöglichen, PDF-Dokumente innerhalb von .NET-Anwendungen zu erstellen, zu lesen und zu bearbeiten.

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

In diesem Abschnitt lernen wir, wie man ein DataTable in ein PDF-Dokument mit IronPDF exportiert.

Zuerst müssen Sie das IronPDF NuGet-Paket installieren. Öffnen Sie die Paket-Manager-Konsole in Visual Studio und führen Sie den folgenden Befehl aus:

Install-Package IronPdf

Sobald das Paket installiert ist, können Sie damit beginnen, die erforderlichen Namespaces in Ihren Code zu importieren:

using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
$vbLabelText   $csharpLabel

Als nächstes erstellen Sie eine Hilfsmethode, die das DataTable in eine HTML-Tabelle konvertiert, da IronPDF HTML verwendet, um Inhalte in PDF-Dokumenten zu rendern:

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();
}
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();
}
$vbLabelText   $csharpLabel

Nun können Sie die HtmlToPdf class verwenden, die von IronPDF bereitgestellt wird, um die HTML-Tabelle zu rendern und als PDF-Datei zu speichern:

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);
}
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);
}
$vbLabelText   $csharpLabel

Die ExportDataTableToPdf-Methode erstellt ein DataTable aus der HTML-Tabelle und speichert es in der PDF-Datei.

Rufen Sie schließlich die ExportDataTableToPdf-Methode mit den entsprechenden Parametern auf, um Ihr DataTable zu exportieren:

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

Dies wird eine PDF-Datei namens "Employees.pdf" erstellen, die den Inhalt Ihres DataTable in einem tabellarischen Format enthält.

C# DataTable (How It Works For Developers Tutorial) - Abbildung 1

Abschluss

In diesem Tutorial haben Sie die Grundlagen von DataTables in C# und wie man ein DataTable mit der IronPDF-Bibliothek in ein PDF-Dokument exportiert, gelernt. Durch die Einbeziehung der Primärschlüsselspalte, Dataset-Variablen und DataView zum Filtern und Sortieren haben Sie mehr Kontrolle und Flexibilität über Ihre Daten. Jetzt sollten Sie ein gutes Verständnis von DataTables und wie Sie IronPDF in Verbindung mit DataTables verwenden, um professionell aussehende PDF-Berichte in Ihren C#-Anwendungen zu erstellen.

IronPDF bietet eine kostenlose Testversion seiner Funktionen an, die es Ihnen ermöglicht, seine Fähigkeiten zu erkunden, bevor Sie sich für einen Kauf entscheiden.

Häufig gestellte Fragen

Was ist ein DataTable in C#?

Eine Datentabelle ist eine vielseitige Datenstruktur im .NET-Framework, die es Entwicklern ermöglicht, Daten in tabellarischer Form zu speichern, zu manipulieren und abzufragen, was sie für die Handhabung strukturierter Daten in Anwendungen unerlässlich macht.

Wie kann ich eine Datentabelle in ein PDF-Dokument in C# umwandeln?

Um eine Datentabelle in ein PDF-Dokument in C# zu konvertieren, wandeln Sie die Datentabelle zuerst in eine HTML-Tabelle um. Verwenden Sie die HtmlToPdf-Klasse von IronPDF, um das HTML als PDF-Dokument zu rendern und die resultierende Datei zu speichern.

Wie erstellt man eine Datentabelle in C#?

Das Erstellen einer Datentabelle in C# beinhaltet das Importieren des System.Data-Namespace und das Instanziieren der Datentabelle-Klasse mit ihrem Konstruktor, wobei optional ein spezifischer Name für die Datentabelle angegeben wird.

Welche Schritte sind erforderlich, um Spalten zu einer DataTable hinzuzufügen?

Um einer Datentabelle Spalten hinzuzufügen, erstellen Sie Instanzen der DataColumn-Klasse, konfigurieren Sie Eigenschaften wie ColumnName und DataType und fügen Sie sie zur Spaltensammlung der Datentabelle hinzu.

Wie kann ich Daten aus einer Datentabelle zu Berichterstattungszwecken in ein PDF exportieren?

Sie können Daten aus einer Datentabelle exportieren, indem Sie die Datentabelle in ein HTML-Tabellenformat konvertieren und dann IronPDF verwenden, um dieses HTML in ein PDF-Dokument zu rendern und professionelle Berichte zu erstellen.

Wie fügt man in C# Zeilen zu einer Datentabelle hinzu?

Um Zeilen zu einer Datentabelle in C# hinzuzufügen, erstellen Sie eine neue DataRow-Instanz, füllen Sie sie mit Daten und fügen Sie sie zur Zeilensammlung der Datentabelle hinzu. Dieser Vorgang kann mit einer Schleife für mehrere Zeilen wiederholt werden.

Was ist LINQ und wie kann es mit Datentabellen verwendet werden?

LINQ (Language Integrated Query) ist ein leistungsstarkes Abfragewerkzeug in C#, das das Filtern, Sortieren und Manipulieren von Daten aus verschiedenen Quellen, einschließlich Datentabellen, ermöglicht, um Datenoperationen zu rationalisieren.

Wie kann ich eine Datentabelle mit einer DataView filtern und sortieren?

Eine DataView bietet eine bequeme Möglichkeit, eine gefilterte oder sortierte Ansicht einer Datentabelle zu erstellen. Durch das Setzen der RowFilter- und Sort-Eigenschaften können Sie steuern, wie Daten angezeigt werden, was besonders in UI-Komponenten nützlich ist.

Wie installiere ich die notwendige Bibliothek, um Datentabellen in PDF zu exportieren?

Um die IronPDF-Bibliothek zu installieren, die für den Export von Datentabellen in PDF notwendig ist, verwenden Sie die Paket-Manager-Konsole in Visual Studio und führen Sie den Befehl aus: Install-Package IronPdf.

Jacob Mellor, Chief Technology Officer @ Team Iron
Chief Technology Officer

Jacob Mellor ist Chief Technology Officer bei Iron Software und ein visionärer Ingenieur, der führend in der C# PDF-Technologie ist. Als ursprünglicher Entwickler der Iron Software-Kerncodebasis hat er die Produktarchitektur des Unternehmens seit seiner Gründung gestaltet und zusammen mit CEO Cameron Rimington in ein Unternehmen ...

Weiterlesen