C# 資料表(開發者的工作原理教學)
歡迎來到此 C# DataTables 教學。 DataTable 是 .NET Framework 提供的功能強大的資料結構,可讓您以表格格式儲存、處理及查詢資料。 在本教程中,我們將探討 C# 中 DataTables 的基礎知識,包括建立和修改 DataTables、新增欄和行、查詢資料,以及使用 DataView 進行篩選和排序。
本教學結束時,您將充分了解如何在 C# 應用程式中使用 DataTables 。 讓我們開始吧
建立 DataTable
要在 C# 中建立 DataTable ,您首先需要匯入 System.Data 命名空間。 此命名空間包含各種與資料處理相關的類別和方法,包括 DataTable 類別。
using System.Data;using System.Data;接下來,您可以建立 DataTable 類的實體。 最簡單的方法是使用預設的構建器,就像這樣:
DataTable dt = new DataTable();DataTable dt = new DataTable();您也可以透過傳送字串參數給建構器來建立具有特定名稱的 DataTable :
DataTable dt = new DataTable("Employees");DataTable dt = new DataTable("Employees");資料表方法
新增欄位
建立 DataTable 後,您就可以開始新增欄位。 若要新增欄位,您首先需要建立 DataColumn 類的實體,並設定其屬性,例如 ColumnName 和 DataType 。
以下是如何在 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);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);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);
}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);
}在上述程式碼中,我們新增了三行資料。
存取資料
您可以透過遍歷 Rows 和 Columns 集合來存取儲存在 DataTable 中的資料。 以下是如何在控制台中顯示 DataTable 內容的範例:
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();
}修改資料
您可以透過更新 DataRow 物件中的值來修改 DataTable 中的資料。 以下是如何更新特定員工年齡的範例:
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;
}刪除行
您可以透過呼叫 DataRow 物件上的 Delete 方法,從 DataTable 刪除一行:
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
}請記住,在 DataRow 上呼叫 Delete 只會標記刪除該行。 您需要在 DataTable 上呼叫 AcceptChanges 方法,以永久移除已刪除的行。
管理多個表格
在某些情況下,您可能需要同時處理多個資料表。 您可以建立一個資料集變數來儲存數個 DataTable 物件,並管理它們之間的關係。
使用 LINQ 查詢資料
LINQ(語言整合查詢)是 C# 的一項強大功能,可讓您從各種資料來源(包括 DataTable 物件)查詢資料。 若要在 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"]);
}using System.Linq;
var filteredRows = dt.AsEnumerable().Where(row => row.Field<int>("Age") > 25);
foreach (DataRow row in filteredRows)
{
Console.WriteLine(row["Name"]);
}DataView:排序和篩選
DataView 是 System.Data 命名空間提供的另一個有用的類別,可讓您建立 DataTable 的排序或篩選檢視。 當您需要在 UI 控件(如 DataGridView )中顯示資料時,這尤其有用。 我們也可以進行資料綁定,從 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"]);
}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 是一款功能強大的 HTML-PDF轉換器,具有人性化的 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");
}
}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 中的套件管理員控制台,並執行下列指令:
Install-Package IronPdf
安裝套件後,您可以先在程式碼中匯入必要的命名空間:
using IronPdf;
using System.IO;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();
}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);
}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);string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);這將建立一個名為"Employees.pdf"的 PDF 檔案,其中包含表格格式的 DataTable 內容。

結論
在本教程中,您已學習了 C# 中 DataTable 的基本知識,以及如何使用 IronPDF 函式庫將 DataTable 匯出至 PDF 文件。 透過結合主關鍵列、資料集變數以及用於篩選和排序的 DataView,您將對資料有更大的控制力和彈性。 現在您應該對 DataTables 有了相當的了解,也知道如何將 IronPDF 與 DataTables 結合使用,在您的 C# 應用程式中建立外觀專業的 PDF 報表。
IronPdf 提供免費試用其功能,讓您在承諾購買之前探索其功能。
常見問題解答
C# 中的 DataTable 是什麼?
DataTable 是 .NET 框架中一種用途廣泛的資料結構,它允許開發人員以表格格式儲存、操作和查詢數據,因此對於在應用程式中處理結構化資料至關重要。
如何在 C# 中將 DataTable 轉換為 PDF 文件?
要在 C# 中將 DataTable 轉換為 PDF 文檔,首先需要將 DataTable 轉換為 HTML 表格。然後使用 IronPDF 的HtmlToPdf類別將 HTML 渲染為 PDF 文檔,並儲存產生的文件。
如何在C#中建立DataTable?
在 C# 中建立 DataTable 需要匯入 System.Data 命名空間,並使用其建構函式實例化 DataTable 類,也可以選擇為 DataTable 提供一個特定的名稱。
如何向資料表中新增列?
若要為 DataTable 新增列,請建立 DataColumn 類別的實例,配置 ColumnName 和 DataType 等屬性,然後將其新增至 DataTable 的 Columns 集合中。
如何將資料表中的資料匯出為 PDF 檔案以用於產生報告?
您可以將 DataTable 中的資料匯出到 PDF,方法是將 DataTable 轉換為 HTML 表格格式,然後使用 IronPDF 將此 HTML 渲染成 PDF 文檔,從而建立專業級報告。
如何在 C# 中向 DataTable 新增行?
要在 C# 中向 DataTable 新增一行,請建立一個新的 DataRow 實例,填充數據,然後將其新增至 DataTable 的 Rows 集合中。可以使用循環重複此過程,新增多行。
什麼是 LINQ?如何將其與 DataTables 結合使用?
LINQ(語言整合查詢)是 C# 中一個強大的查詢工具,它能夠對來自各種來源(包括 DataTables)的資料進行篩選、排序和操作,從而簡化資料操作。
如何使用 DataView 對 DataTable 進行篩選和排序?
DataView 提供了一種便捷的方式來建立 DataTable 的篩選或排序視圖。透過設定 RowFilter 和 Sort 屬性,您可以控制資料的顯示方式,這在 UI 元件中尤其有用。
如何安裝將資料表匯出為 PDF 所需的庫?
若要安裝將 DataTables 匯出至 PDF 所需的 IronPDF 庫,請使用 Visual Studio 中的套件管理器控制台並執行下列命令: Install-Package IronPdf 。







