透かしなしで本番環境でテストしてください。
必要な場所で動作します。
30日間、完全に機能する製品をご利用いただけます。
数分で稼働させることができます。
製品トライアル期間中にサポートエンジニアリングチームへの完全アクセス
C# DataTablesに関するチュートリアルへようこそ。 DataTable
は、.NET フレームワークによって提供される強力なデータ構造であり、データを表形式で保存、操作、およびクエリすることができます。 このチュートリアルでは、C#におけるDataTablesの基本について探求します。これには、DataTables
の作成と修正、列と行の追加、データのクエリ、DataView
を使用したフィルタリングと並べ替えが含まれます。
このチュートリアルの終わりまでに、C# アプリケーションで DataTables
を使用する方法がよく理解できるようになります。 さあ、始めましょう!
C#でDataTable
を作成するには、まずSystem.Data
名前空間をインポートする必要があります。 この名前空間には、DataTable
クラスを含む、データ操作に関連するさまざまなクラスとメソッドが含まれています。
using System.Data;
using System.Data;
Imports System.Data
次に、DataTable
クラスのインスタンスを作成できます。 これを行う最も簡単な方法は、以下のようにデフォルトコンストラクターを使用することです:
DataTable dt = new DataTable();
DataTable dt = new DataTable();
Dim dt As New DataTable()
また、文字列パラメータをコンストラクタに渡すことで、特定の名前を持つDataTable
を作成することができます。
DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
Dim dt As New DataTable("Employees")
データテーブルを作成したら、列を追加し始めることができます。 列を追加するには、まず DataColumn
クラスのインスタンスを作成し、ColumnName
や DataType
などのプロパティを設定する必要があります。
以下は、DataTableに3つの列を追加する方法の例です:
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)
データテーブルに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);
Dim newRow As DataRow = 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);
}
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
上記のコードでは、3つのデータ行を追加しました。
DataTable
に格納されているデータには、そのRows
と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();
}
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
DataTable
のデータは、DataRow
オブジェクトの値を更新することで変更できます。 特定の従業員の年齢を更新する方法の例を以下に示します:
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;
}
Dim employeeRow As DataRow = dt.Rows.Find(1) ' Find the row with the specified primary key
If employeeRow IsNot Nothing Then
employeeRow ("Age") = 35
End If
DataTableから行を削除するには、DataRow
オブジェクトのDeleteメソッドを呼び出します。
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
DataRow
でDelete
を呼び出すと、その行が削除対象としてマークされるだけであることに注意してください。 削除された行を永久に削除するには、DataTable
の AcceptChanges
メソッドを呼び出す必要があります。
場合によっては、複数のデータテーブルを同時に扱う必要があるかもしれません。 いくつかのDataTableオブジェクトを格納し、それらの関係を管理するためにdataset変数を作成することができます。
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"]);
}
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
は、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"]);
}
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
IronPDFは、.NETアプリケーション内で開発者がPDF文書の作成、読み取り、編集を可能にするユーザーフレンドリーなPDF操作機能を備えた強力なHTMLから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");
}
}
Imports IronPdf
Friend Class Program
Shared Sub Main(ByVal args() As String)
Dim renderer = New ChromePdfRenderer()
' 1. 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")
' 2. 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")
' 3. 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
このセクションでは、IronPDFを使用してDataTable
をPDFドキュメントにエクスポートする方法を学びます。
まず、IronPDFのNuGetパッケージをインストールする必要があります。 Visual Studioでパッケージマネージャーコンソールを開き、次のコマンドを実行してください。
Install-Package IronPdf
パッケージがインストールされたら、コードに必要な名前空間をインポートすることから始めることができます。
using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
Imports IronPdf
Imports System.IO
次に、DataTableをHTMLテーブルに変換するヘルパーメソッドを作成します。これは、IronPDFがPDFドキュメントの内容をレンダリングするためにHTMLを使用するためです。
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
これで、IronPDF が提供する HtmlToPdf クラス
を使用して、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);
}
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
ExportDataTableToPdf
メソッドは HTML テーブルから DataTable
を作成し、それを PDF ファイルに保存します。
最後に、適切なパラメータでExportDataTableToPdf
メソッドを呼び出して、DataTable
をエクスポートします。
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
Dim pdfOutputPath As String = "Employees.pdf"
ExportDataTableToPdf(dt, pdfOutputPath)
これにより、"Employees.pdf" という名前のPDFファイルが作成され、DataTable
の内容が表形式で含まれます。
このチュートリアルでは、C#のDataTablesの基本と、IronPDFライブラリを使用してDataTable
をPDFドキュメントにエクスポートする方法を学びました。 主キー列、データセット変数、およびフィルタリングとソートのためのDataViewを組み込むことで、データに対してより大きな制御と柔軟性を持つことができます。 これで、DataTablesの理解が深まり、IronPDFを使用してDataTablesと連携し、C#アプリケーションでプロフェッショナルな外観のPDFレポートを作成する方法を理解できたはずです。
IronPDFは、購入を決定する前にその機能を探ることができる無料トライアルを提供しています。