在生產環境中測試,無水印。
在任何需要的地方都能運行。
獲得 30 天的全功能產品。
在幾分鐘內上手運行。
試用產品期間完全訪問我們的支援工程團隊
歡迎來到這個 C# DataTables 教程。 DataTable
是 .NET 框架提供的一種強大的數據結構,允許您以表格格式存儲、操作和查詢數據。 在本教程中,我們將探討 C# 中 DataTables 的基本知識,包括創建和修改 DataTables
、添加欄位和行、查詢數據,以及使用 DataView
進行篩選和排序。
在本教程結束時,您將充分了解如何在您的 C# 應用程序中使用 DataTables
。 讓我們開始吧!
要在 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
裡的資料。 以下是一個更新特定員工年齡的範例:
DataRow employeeRow = dt.Rows.Find(1); // Find the row with the specified primary key
if (employeeRow != null)
{
employeeRow ["Age"] = 35;
}
DataRow employeeRow = dt.Rows.Find(1); // 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
}
請記住,呼叫 Delete
在 DataRow
上僅標記該行為刪除。 您需要在 DataTable
上呼叫 AcceptChanges
方法以永久刪除已刪除的行。
在某些情況下,您可能需要同時處理多個資料表。 您可以創建一個數據集變數來存儲多個 DataTable 對象並管理它們之間的關係。
LINQ(語言集成查詢)是 C# 中的一個強大功能,允許您從各種資料來源查詢數據,包括 DataTable
對象。 若要將 LINQ 用於 DataTables,需要匯入 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
是由 System.Data
命名空間提供的另一個有用的類別,允許您創建一個已排序或已過濾的 DataTable
視圖。 這在需要將數據顯示在像 DataGridView
之類的 UI 控件中時特別有用。 我們也可以使用資料繫結將資料從 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是一個強大的HTML 轉 PDF 轉換器,配備易於使用的PDF操作功能,使開發人員能夠在.NET應用程式中建立、閱讀和編輯PDF文件。
using IronPdf;
class Program
{
static void Main(string [] args)
{
var renderer = new ChromePdfRenderer();
// 1. 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");
// 2. 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");
// 3. 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();
// 1. 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");
// 2. 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");
// 3. 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();
}
現在,您可以使用HtmlToPdf 類別
由 IronPDF 提供以渲染 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# 中 DataTables 的基本知識以及如何使用 IronPDF 庫將 DataTable
匯出為 PDF 文件。 通過整合主鍵欄位、數據集變量和數據視圖進行篩選和排序,您將對您的數據有更大的控制和靈活性。 現在,您應該對DataTables有很好的了解,以及如何使用IronPDF結合DataTables在C#應用程式中創建專業外觀的PDF報告。
IronPDF 提供一個免費試用其功能,讓您在購買之前探索其功能。