C# DataTable (Wie es für Entwickler funktioniert Tutorial)
Willkommen zu diesem Tutorial über C# DataTables. Eine DataTable ist eine leistungsstarke Datenstruktur des .NET Framework, mit der sich Daten in tabellarischer Form speichern, bearbeiten und abfragen lassen. In diesem Tutorial werden wir die Grundlagen von DataTables in C# erkunden, einschließlich des Erstellens und Änderns von DataTables, des Hinzufügens von Spalten und Zeilen, des Abfragens von Daten und der 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 Namensraum enthält verschiedene Klassen und Methoden, die mit der Datenmanipulation zusammenhängen, einschließlich der Klasse DataTable.
using System.Data;
using System.Data;
Imports System.Data
Als Nächstes können Sie eine Instanz der Klasse DataTable erstellen. Der einfachste Weg, dies zu tun, ist die Verwendung des Standardkonstruktors, wie folgt:
DataTable dt = new DataTable();
DataTable dt = new DataTable();
Dim dt As New DataTable()
Sie können auch ein DataTable mit einem bestimmten Namen erstellen, indem Sie dem Konstruktor einen String-Parameter übergeben:
DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
Dim dt As New DataTable("Employees")
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 Klasse DataColumn erstellen und deren Eigenschaften festlegen, 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);
Dim idColumn As New DataColumn("Id", GetType(Integer))
Dim nameColumn As New DataColumn("Name", GetType(String))
Dim ageColumn As New DataColumn("Age", GetType(Integer))
dt.Columns.Add(idColumn)
dt.Columns.Add(nameColumn)
dt.Columns.Add(ageColumn)
Sie können mehrere Spalten wie die Spalte Id in die Datentabelle einfügen.
Hinzufügen von Datenzeilen
Nachdem Sie die Spalten definiert haben, können Sie mit dem Hinzufügen von Zeilen zu DataTable beginnen. Um eine Zeile hinzuzufügen, müssen Sie eine neue Instanz der Klasse DataRow erstellen und deren Felder mit den erforderlichen Daten füllen.
Hier ist ein Beispiel, wie man eine neue Zeile zu 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);
Dim newRow As DataRow = dt.NewRow()
newRow("Id") = 1
newRow("Name") = "John Doe"
newRow("Age") = 30
dt.Rows.Add(newRow)
Sie können auch mehrere DataTable Zeilen gleichzeitig mit der gleichen Methode in einer Schleife hinzufügen.
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);
}
For i As Integer = 1 To 3
Dim row As DataRow = dt.NewRow()
row("Id") = i
row("Name") = "Employee " & i
row("Age") = 20 + i
dt.Rows.Add(row)
Next i
Im obigen Code haben wir drei Datenzeilen hinzugefügt.
Zugriff auf Daten
Sie können auf die in einem DataTable gespeicherten Daten zugreifen, indem Sie die Sammlungen Rows und Columns durchlaufen. Hier ist ein Beispiel, wie der Inhalt von DataTable in der Konsole angezeigt werden kann:
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();
}
Imports Microsoft.VisualBasic
For Each row As DataRow In dt.Rows
For Each col As DataColumn In dt.Columns
Console.Write(row(col) & vbTab)
Next col
Console.WriteLine()
Next row
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;
}
Dim primaryKey = 1
Dim employeeRow As DataRow = dt.Rows.Find(primaryKey) ' Find the row with the specified primary key
If employeeRow IsNot Nothing Then
employeeRow("Age") = 35
End If
Löschen von Zeilen
Sie können eine Zeile aus einer DataTable löschen, indem Sie die Delete-Methode eines DataRow-Objekts 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
}
Dim employeeRow As DataRow = dt.Rows.Find(1)
If employeeRow IsNot Nothing Then
employeeRow.Delete()
dt.AcceptChanges() ' Commit the deletion
End If
Beachten Sie, dass der Aufruf von Delete auf einem DataRow die Zeile lediglich zum Löschen markiert. Sie müssen die Methode AcceptChanges für DataTable aufrufen, um die gelöschten Zeilen endgültig 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 abfragen können, einschließlich DataTable-Objekten. 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"]);
}
Imports System.Linq
Private filteredRows = dt.AsEnumerable().Where(Function(row) row.Field(Of Integer)("Age") > 25)
For Each row As DataRow In filteredRows
Console.WriteLine(row("Name"))
Next row
DataView: Sortieren und Filtern
DataView ist eine weitere nützliche Klasse aus dem Namespace System.Data, 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 DataGridView anzeigen müssen. Wir können auch eine Datenbindung durchführen, um Daten aus einem DataTable-Steuerelement zum 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"]);
}
Dim view As 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
For Each rowView As DataRowView In view
Dim row As DataRow = rowView.Row
Console.WriteLine(row("Name"))
Next rowView
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");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' Convert HTML String to PDF
Dim htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>"
Dim pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent)
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf")
' Convert HTML File to PDF
Dim htmlFilePath = "path_to_your_html_file.html" ' Specify the path to your HTML file
Dim pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath)
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf")
' Convert URL to PDF
Dim url = "http://ironpdf.com" ' Specify the URL
Dim pdfFromUrl = renderer.RenderUrlAsPdf(url)
pdfFromUrl.SaveAs("URLToPDF.pdf")
End Sub
End Class
In diesem Abschnitt lernen wir, wie man mit IronPDF eine DataTable-Datei in ein PDF-Dokument 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;
Imports IronPdf
Imports System.IO
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();
}
Public Shared Function ConvertDataTableToHtml(ByVal dt As DataTable) As String
Dim htmlBuilder As New StringBuilder()
htmlBuilder.AppendLine("<table border='1' cellpadding='5' cellspacing='0'>")
htmlBuilder.AppendLine("<tr>")
' Add column headers
For Each col As DataColumn In dt.Columns
htmlBuilder.AppendFormat("<th>{0}</th>", col.ColumnName)
Next col
htmlBuilder.AppendLine("</tr>")
' Add rows
For Each row As DataRow In dt.Rows
htmlBuilder.AppendLine("<tr>")
For Each col As DataColumn In dt.Columns
htmlBuilder.AppendFormat("<td>{0}</td>", row(col))
Next col
htmlBuilder.AppendLine("</tr>")
Next row
htmlBuilder.AppendLine("</table>")
Return htmlBuilder.ToString()
End Function
Sie können nun den von IronPDF bereitgestellten Code HtmlToPdf class verwenden, 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);
}
Public Shared Sub ExportDataTableToPdf(ByVal dt As DataTable, ByVal outputPath As String)
' Convert DataTable to HTML
Dim htmlTable As String = ConvertDataTableToHtml(dt)
' Create a new HTML to PDF renderer
Dim 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
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlTable)
' Save the PDF file
pdf.SaveAs(outputPath)
End Sub
Die Methode ExportDataTableToPdf erstellt eine DataTable aus der HTML-Tabelle und speichert sie in der PDF-Datei.
Rufen Sie abschließend die Methode ExportDataTableToPdf mit den entsprechenden Parametern auf, um Ihre DataTable zu exportieren:
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
Dim pdfOutputPath As String = "Employees.pdf"
ExportDataTableToPdf(dt, pdfOutputPath)
Dadurch wird eine PDF-Datei mit dem Namen "Employees.pdf" erstellt, die den Inhalt Ihres DataTable in Tabellenform enthält.

Abschluss
In diesem Tutorial haben Sie die Grundlagen von DataTables in C# kennengelernt und erfahren, wie Sie mit Hilfe der IronPDF -Bibliothek ein DataTable-Dokument in ein PDF-Dokument exportieren. 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.




