C# DataTable (Geliştiriciler İçin Nasıl Çalışır Öğretici)
C# DataTables eğitimine hoş geldiniz. A DataTable, verileri tablo formatında saklamanıza, işlemenize ve sorgulamanıza olanak tanıyan .NET framework tarafından sağlanan güçlü bir veri yapısıdır. Bu öğreticide, DataTables oluşturma ve değiştirme, sütun ve satır ekleme, verileri sorgulama ve süzme ve sıralama için DataView kullanma dahil olmak üzere C#'ta DataTables'ın temellerini inceleyeceğiz.
Bu öğreticinin sonunda, C# uygulamalarınızda DataTables nasıl kullanılacağını iyi bir şekilde anlamış olacaksınız. Başlayalım!
DataTable Oluşturma
C#'ta bir DataTable oluşturmak için ilk olarak System.Data ad alanını içe aktarmanız gerekir. Bu ad alanı, veri işleme ile ilgili çeşitli sınıflar ve yöntemler içerir, DataTable sınıfı dahil.
using System.Data;
using System.Data;
Imports System.Data
Ardından, DataTable sınıfından bir örnek oluşturabilirsiniz. Bunu yapmanın en basit yolu, varsayılan yapıcıyı kullanmaktır, şöyle:
DataTable dt = new DataTable();
DataTable dt = new DataTable();
Dim dt As New DataTable()
Bir DataTable'yi belirli bir ad ile oluşturmak için yapıcıya bir string parametresi geçirerek oluşturabilirsiniz:
DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
Dim dt As New DataTable("Employees")
DataTable Yöntemleri
Sütun Ekleme
Bir DataTable oluşturduktan sonra, ona sütunlar eklemeye başlayabilirsiniz. Bir sütun eklemek için önce DataColumn sınıfından bir örnek oluşturmanız ve ColumnName ve DataType gibi özelliklerini ayarlamanız gerekir.
İşte bir DataTable'a üç sütun eklemenin bir örneği:
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)
Veri tablosunda Id sütunu gibi birden fazla sütun ekleyebilirsiniz.
Veri Satırları Ekleme
Sütunları tanımladıktan sonra, DataTable satırları eklemeye başlayabilirsiniz. Bir satır eklemek için yeni bir DataRow sınıfı örneği oluşturmanız ve gerekli verilerle alanlarını doldurmanız gerekir.
Bir DataTable'ya nasıl yeni bir satır ekleyeceğinize dair bir örnek:
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)
Aynı yöntemi bir döngü içinde kullanarak birden fazla DataTable satırını bir kerede ekleyebilirsiniz.
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
Yukarıdaki kodda, üç veri satırı ekledik.
Verilere Erişim
DataTable'da saklanan verilere Rows ve Columns koleksiyonlarını döngü ile gezerek erişebilirsiniz. Bir DataTable içeriğini konsolda nasıl göstereceğiniz hakkında bir örnek:
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
Verileri Değiştirme
DataTable'deki verileri, DataRow nesnelerindeki değerleri güncelleyerek değiştirebilirsiniz. Belirli bir çalışanın yaşını güncellemenin bir örneği:
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
Satırları Silme
DataRow nesnesinde Delete yöntemini çağırarak bir DataTable'dan bir satırı silebilirsiniz:
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
Delete işlemini bir DataRow üzerinde kaçırmanın yalnızca o satırı silinmek üzere işaretlediğini unutmayın. Silinen satırları kalıcı olarak kaldırmak için DataTable üzerinde AcceptChanges yöntemini çağırmanız gerekir.
Birden Fazla Tablo Yönetimi
Bazı durumlarda, aynı anda birden fazla veri tablosu ile çalışmanız gerekebilir. Birden fazla DataTable nesnesini depolamak ve aralarındaki ilişkileri yönetmek için bir veri kümesi değişkeni oluşturabilirsiniz.
LINQ ile Veri Sorgulama
LINQ (Language Integrated Query), C#'ta DataTable nesneleri dahil olmak üzere çeşitli veri kaynaklarından veri sorgulamanıza olanak tanıyan güçlü bir özelliktir. DataTables ile LINQ kullanmak için System.Linq ad alanını içe aktarmanız gerekir. İşte LINQ kullanarak 25 yaşından büyük çalışanları filtrelemek için bir örnek:
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: Sıralama ve Filtreleme
DataView, System.Data ad alanı tarafından sağlanan, DataTable olan bir görünüm oluşturmanıza olanak tanıyan başka bir kullanışlı sınıftır. Bu, DataGridView gibi bir UI kontrolünde verileri göstermeniz gerektiğinde özellikle kullanışlıdır. Verileri bir DataTable'dan DataGridView kontrolüne eklemek için veri bağlamayı da yapabiliriz.
İşte, çalışanları yaşlarına göre filtrelemek ve sıralamak için bir DataView oluşturma örneği:
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 ile DataTable'ı PDF Olarak Dışa Aktarma
IronPDF, kullanıcı dostu PDF düzenleme özellikleriyle dolu güçlü bir HTML'den PDF'ye dönüştürücü olup, geliştiricilerin .NET uygulamaları içinde PDF belgeleri oluşturmasını, okumasını ve düzenlemesini sağlar.
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
Bu bölümde, IronPDF kullanarak bir DataTable'yı bir PDF belgesine nasıl dışa aktaracağınızı öğreneceğiz.
Öncelikle, IronPDF NuGet paketini yüklemeniz gerekmektedir. Visual Studio'da Paket Yöneticisi Konsolu'nu açın ve aşağıdaki komutu çalıştırın:
Install-Package IronPdf
Paket yüklendikten sonra, kodunuzda gerekli ad alanlarını içe aktararak başlayabilirsiniz:
using IronPdf;
using System.IO;
using IronPdf;
using System.IO;
Imports IronPdf
Imports System.IO
Ardından, DataTable'ı bir HTML tablosuna dönüştüren bir yardımcı yöntem oluşturun, çünkü IronPDF, PDF belgelerinde içeriği işlemek için HTML kullanır:
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
Şimdi, IronPDF tarafından sağlanan HtmlToPdf class kullanarak HTML tablosunu işleyebilir ve PDF dosyası olarak kaydedebilirsiniz:
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 yöntemi HTML tablosundan bir DataTable oluşturur ve bunu PDF dosyasına kaydeder.
Son olarak, DataTable'yı dışa aktarmak için uygun parametrelerle ExportDataTableToPdf yöntemini çağırın:
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
string pdfOutputPath = "Employees.pdf";
ExportDataTableToPdf(dt, pdfOutputPath);
Dim pdfOutputPath As String = "Employees.pdf"
ExportDataTableToPdf(dt, pdfOutputPath)
Bu, DataTable içeriğini tablo formatında içeren 'Employees.pdf' adlı bir PDF dosyası oluşturacaktır.

Sonuç
Bu öğreticide, C#'ta DataTables'ın temellerini ve IronPDF kütüphanesini kullanarak bir DataTable'yı bir PDF belgesine nasıl dışa aktaracağınızı öğrendiniz. Birincil anahtar sütunu, veri kümesi değişkenleri ve filtremede ve sıralamada kullanılacak DataView'i dahil ederek verileriniz üzerinde daha fazla kontrol ve esneklik elde edeceksiniz. Artık DataTables hakkında iyi bir anlayışa sahip olmalı ve C# uygulamalarınızda profesyonel görünümlü PDF raporları oluşturmak için DataTables ile birlikte IronPDF kullanmayı öğrenmiş olmalısınız.
IronPDF, özelliklerinin ücretsiz bir deneme sürümünü sunar ve bu sayede satın alma taahhüdünde bulunmadan önce yeteneklerini keşfetmenize olanak tanır.
Sıkça Sorulan Sorular
C#'de DataTable nedir?
DataTable, .NET frameworkünde geliştiricilerin verileri tablo formatında depolamasına, manipüle etmesine ve sorgulamasına olanak tanıyan çok yönlü bir veri yapısıdır ve uygulamalarda yapılandırılmış verileri yönetmek için esastır.
C#'ta bir DataTable'ı PDF belgesine nasıl dönüştürebilirim?
C#'ta bir DataTable'ı PDF belgesine dönüştürmek için önce DataTable'ı bir HTML tablosuna çevirin. IronPDF'nin HtmlToPdf sınıfını kullanarak HTML'yi PDF belgesi olarak oluşturun ve oluşan dosyayı kaydedin.
C#'ta DataTable nasıl oluşturulur?
C#'ta bir DataTable oluşturmak, System.Data adlı alan adını içe aktarmak ve DataTable sınıfını yapıcısı ile başlatmayı içerir, isteğe bağlı olarak DataTable için belirli bir ad sağlanabilir.
Bir DataTable'a sütun ekleme adımları nelerdir?
Bir DataTable'a sütun eklemek için DataColumn sınıfının örneklerini oluşturun, ColumnName ve DataType gibi özellikleri yapılandırın ve DataTable'ın Columns koleksiyonuna ekleyin.
Bir DataTable'dan rapor hazırlama amacıyla verileri nasıl PDF'ye aktarabilirim?
Bir DataTable'dan verileri PDF'ye aktarmak için önce DataTable'ı HTML tablo formatına çevirin, ardından bu HTML'yi IronPDF kullanarak profesyonel kalitede raporlar oluşturmak için PDF belgesine dönüştürün.
C#'ta bir DataTable'a satır ekleme işlemi nasıl yapılır?
C#'ta bir DataTable'a satır eklemek için yeni bir DataRow örneği oluşturun, verilerle doldurun ve DataTable'ın Rows koleksiyonuna ekleyin. Bu işlem, bir döngü kullanılarak birden fazla satır için tekrarlanabilir.
LINQ nedir ve DataTable'larla nasıl kullanılabilir?
LINQ (Dile Entegre Edilmiş Sorgu), C#'ta çeşitli kaynaklardan, DataTable'lar dahil, veri filtreleme, sıralama ve manipüle etmeyi sağlayan güçlü bir sorgulama aracıdır ve veri işlemlerini kolaylaştırır.
DataView kullanarak bir DataTable nasıl filtrelenir ve sıralanır?
Bir DataView, bir DataTable'ın filtrelenmiş veya sıralanmış bir görünümünü oluşturmanın uygun bir yolunu sağlar. RowFilter ve Sort özelliklerini ayarlayarak, verilerin nasıl görüntülendiğini kontrol edebilirsiniz, bu özellikle UI bileşenlerinde faydalıdır.
DataTables'i PDF'ye aktarmak için gerekli kütüphane nasıl kurulur?
DataTables'i PDF'ye aktarmak için gerekli olan IronPDF kütüphanesini kurmak için Visual Studio'daki Paket Yöneticisi Konsolunu kullanın ve şu komutu çalıştırın: Install-Package IronPdf.




