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# untersuchen, einschließlich der Erstellung und Modifikation von DataTables, dem Hinzufügen von Spalten und Zeilen, dem Abfragen von Daten und der Verwendung von DataView zum Filtern und Sortieren.

Am Ende dieses Tutorials werden Sie ein gutes Verständnis davon haben, wie Sie DataTables in Ihren C#-Anwendungen verwenden. Legen wir los!

Erstellen einer DataTable

Um eine DataTable in C# zu erstellen, müssen Sie zuerst den System.Data-Namespace 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 eine DataTable mit einem bestimmten Namen erstellen, indem Sie einen String-Parameter an den Konstruktor ü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 deren Eigenschaften festlegen, wie z.B. 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

Nachdem Sie die Spalten definiert haben, können Sie beginnen, Zeilen zur DataTable hinzuzufügen. Um eine Zeile hinzuzufügen, müssen Sie eine neue Instanz der DataRow-Klasse erstellen und deren Felder mit den erforderlichen Daten füllen.

Hier ist ein Beispiel, wie Sie eine neue Zeile zu einer DataTable hinzufügen:

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 auf einmal 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 in einer DataTable gespeicherten Daten zugreifen, indem Sie durch deren Rows und Columns-Sammlungen iterieren. Hier ist ein Beispiel, wie Sie die Inhalte einer DataTable in der Konsole anzeigen:

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 einer DataTable ändern, indem Sie die Werte in ihren 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 einer 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 für die Löschung markiert. Sie müssen die AcceptChanges-Methode auf der 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#, die es Ihnen ermöglicht, Daten aus verschiedenen Datenquellen abzufragen, einschließlich DataTable-Objekten. Um LINQ mit DataTables zu verwenden, müssen Sie den System.Linq-Namespace 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 System.Data-Namespace bereitgestellt wird und es Ihnen ermöglicht, eine sortierte oder gefilterte Ansicht einer DataTable zu erstellen. Dies ist besonders nützlich, wenn Sie die Daten in einem UI-Control wie einem DataGridView anzeigen müssen. Wir können auch eine Datenbindung durchführen, um Daten aus einer DataTable zum DataGridView-Control 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 eine DataTable zu einem 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

Jetzt können Sie den von IronPDF bereitgestellten HtmlToPdf class verwenden, um die HTML-Tabelle zu rendern und sie 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 eine DataTable aus der HTML-Tabelle und speichert sie in der PDF-Datei.

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

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

Dies wird eine PDF-Datei mit dem Namen "Employees.pdf" erstellen, die den Inhalt Ihrer 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# gelernt und wie man eine DataTable mit der IronPDF-Bibliothek in ein PDF-Dokument exportiert. 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 Pionierarbeit in der C# PDF-Technologie leistet. Als der ursprüngliche Entwickler hinter der Kern-Codebasis von Iron Software hat er die Produktarchitektur des Unternehmens seit seiner Gründung geprägt und es zusammen mit CEO ...

Weiterlesen

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me