.NET幫助 C# DataTable(開發者的工作原理教程) Jacob Mellor 更新:2025年6月22日 下載 IronPDF NuGet 下載 DLL 下載 Windows Installer 開始免費試用 LLM副本 LLM副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 歡迎使用這個關於C# DataTables的教程。 一個DataTable是由.NET框架提供的一個強大的資料結構,允許您以表格格式存儲、操作和查詢資料。 在本教程中,我們將探討C#中DataTables的基礎,包括創建和修改DataView進行過濾和排序。 完成本教程後,您將對如何在您的C#應用程式中使用DataTables有深入的了解。 讓我們開始吧! 創建DataTable 要在C#中創建一個System.Data命名空間。 這個命名空間包含與數據操作相關的各種類和方法,包括DataTable類。 using System.Data; using System.Data; $vbLabelText $csharpLabel 接下來,您可以創建DataTable類的實例。 最簡單的方法是使用默認構造函數,如下所示: DataTable dt = new DataTable(); DataTable dt = new DataTable(); $vbLabelText $csharpLabel 您也可以通過將字符串參數傳遞給構造函數來創建具有特定名稱的DataTable: DataTable dt = new DataTable("Employees"); DataTable dt = new DataTable("Employees"); $vbLabelText $csharpLabel DataTable方法 添加列 創建DataTable後,您可以開始向其中添加列。 要添加一列,您首先需要創建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); $vbLabelText $csharpLabel 您可以像在資料表中添加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); $vbLabelText $csharpLabel 您也可以在循環中使用相同的方法一次添加多個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); } $vbLabelText $csharpLabel 在以上代碼中,我們添加了三個數據行。 訪問數據 您可以通過迭代Columns集合來訪問存儲在其中的數據。 這是一個如何在控制台中顯示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(); } $vbLabelText $csharpLabel 修改數據 您可以通過更新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; } $vbLabelText $csharpLabel 刪除行 您可以通過在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 } $vbLabelText $csharpLabel 請記住,在Delete只會標記該行待刪除。 您需要在AcceptChanges方法以永久刪除已刪除的行。 管理多個表格 在某些情況下,您可能需要同時處理多個數據表。 您可以創建一個數據集變量來存儲多個DataTable對象並管理它們之間的關係。 使用LINQ查詢數據 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"]); } $vbLabelText $csharpLabel DataView: 排序和過濾 DataTable的排序或過濾視圖。 當您需要在UI控制中顯示數據時,這特別有用,比如DataGridView。 我們還可以通過將數據綁定添加到從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"]); } $vbLabelText $csharpLabel 使用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"); } } $vbLabelText $csharpLabel 在本節中,我們將學習如何使用IronPDF將DataTable導出為PDF文件。 首先,您需要安裝IronPDF NuGet包。 在Visual Studio中打開Package Manager Console並運行以下命令: Install-Package IronPdf 安裝包後,您可以通過在代碼中導入必要的命名空間來開始: using IronPdf; using System.IO; using IronPdf; using System.IO; $vbLabelText $csharpLabel 接下來,創建一個輔助方法,將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(); } $vbLabelText $csharpLabel 現在,您可以使用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); } $vbLabelText $csharpLabel DataTable,並將其儲存到PDF文件中。 最後,調用DataTable: string pdfOutputPath = "Employees.pdf"; ExportDataTableToPdf(dt, pdfOutputPath); string pdfOutputPath = "Employees.pdf"; ExportDataTableToPdf(dt, pdfOutputPath); $vbLabelText $csharpLabel 這將創建一個名為"Employees.pdf"的PDF文件,包含您的DataTable的表格內容。 結論 在這個教程中,您已學習了C#中DataTables的基礎知識以及如何使用IronPDF程式庫將DataTable導出為PDF文件。 通過使用主鍵列、數據集變量和DataView進行過濾和排序,您將對您的數據有更大的控制和靈活性。 現在您應該已對DataTables有了深入的了解,並知道如何將IronPDF與DataTables結合使用,以在您的C#應用程式中創建專業外觀的PDF報告。 IronPDF提供免費試用其功能,允許您在購買之前探索其功能。 常見問題解答 什麼是 C# 中的 DataTable? DataTable 是 .NET Framework中一種多功能數據結構,允許開發者以表格式存儲、操作和查詢數據,對於應用程式中處理結構化數據至關重要。 如何在 C# 中將 DataTable 轉換為 PDF 文檔? 要在 C# 中將 DataTable 轉換為 PDF 文檔,首先將 DataTable 轉換為 HTML 表格。使用 IronPDF 的 HtmlToPdf 類將 HTML 渲染為 PDF 文檔並保存生成的文件。 如何在 C# 中創建 DataTable? 在 C# 中創建 DataTable 涉及導入 System.Data 命名空間並使用其構造函數實例化 DataTable 類,可以選擇性地為 DataTable 提供一個特定名稱。 添加列到 DataTable 的步驟是什麼? 要向 DataTable 添加列,創建 DataColumn 類的實例,配置如 ColumnName 和 DataType 等屬性,然後將它們添加到 DataTable 的 Columns 集合中。 如何將 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 組件中尤為有用。 如何安裝導出 DataTables 為 PDF 的必要庫? 要安裝導出 DataTables 為 PDF 的 IronPDF 庫,請使用 Visual Studio 中的套件管理控制台並執行命令:Install-Package IronPDF。 Jacob Mellor 立即與工程團隊聊天 首席技術官 Jacob Mellor是Iron Software的首席技術官,也是開創C# PDF技術的前瞻性工程師。作為Iron Software核心代碼庫的原始開發者,他自公司成立以來就塑造了公司的產品架構,並與CEO Cameron Rimington將公司轉型為服務NASA、Tesla以及全球政府機構的50多人公司。Jacob擁有曼徹斯特大學土木工程一級榮譽學士學位(1998年–2001年)。他於1999年在倫敦開立首家軟體公司,並於2005年建立了他的第一個.NET組件,專注於解決Microsoft生態系統中的複雜問題。他的旗艦作品IronPDF和Iron Suite .NET程式庫全球已獲得超過3000萬次NuGet安裝,他的基礎代碼不斷在全球各地驅動開發者工具。擁有25年以上的商業經驗和41年的編碼專業知識,Jacob仍然專注於推動企業級C#、Java和Python PDF技術的創新,同時指導下一代技術領導者。 相關文章 更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多 更新2025年12月20日 RandomNumberGenerator C# 使用RandomNumberGenerator C#類可以幫助將您的PDF生成和編輯項目提升至新水準 閱讀更多 更新2025年12月20日 C#字符串等於(它如何對開發者起作用) 當結合使用強大的PDF庫IronPDF時,開關模式匹配可以讓您構建更智能、更清晰的邏輯來進行文檔處理 閱讀更多 安裝 NuGet Powershell(開發者的工作原理教程)如何在C#中使用.NET Fiddle
更新2026年2月20日 銜接 CLI 簡化與 .NET : 使用 Curl DotNet 與 IronPDF for .NET Jacob Mellor 藉由 CurlDotNet 彌補了這方面的不足,CurlDotNet 是為了讓 .NET 生態系統能熟悉 cURL 而建立的函式庫。 閱讀更多