C# DataTable (Geliştiriciler İçin Nasıl Çalışır Öğretici)
Bu C# Veri Tabloları konulu eğitime hoş geldiniz. A DataTable, verileri tablo formatında saklamanızı, değiştirmenizi ve sorgulamanızı sağlayan .NET framework tarafından sağlanan güçlü bir veri yapısıdır. Bu öğreticide, C# içinde DataTables'ın temellerini, DataTables oluşturma ve değiştirme, sütun ve satır ekleme, veri sorgulama ve DataView filtreleme ve sıralama için kullanma dahil olmak üzere keşfedeceğiz.
Bu öğretinin sonunda, C# uygulamalarınızda DataTables nasıl kullanacağınız hakkında iyi bir anlayışınıza sahip olacaksınız. Hadi başlayalım!
Bir Veri Tablosu Oluşturma
C#'ta bir DataTable oluşturmak için öncelikle System.Data ad alanını içe aktarmanız gerekir. Bu ad alanı, veri manipülasyonu ile ilgili çeşitli sınıf ve yöntemler içerir, DataTable sınıfı da dahil.
using System.Data;
using System.Data;
Imports System.Data
Ardından, DataTable sınıfının bir örneğini oluşturabilirsiniz. Bunun en basit yolu, varsayılan yapıcıyı kullanarak şöyle yapmaktır:
DataTable dt = new DataTable();
DataTable dt = new DataTable();
Dim dt As New DataTable()
Bir dizgiyi yapıcısına geçirerek belirli bir adla bir DataTable de oluşturabilirsiniz:
DataTable dt = new DataTable("Employees");
DataTable dt = new DataTable("Employees");
Dim dt As New DataTable("Employees")
Veri Tablosu Yöntemleri
Kolon Ekleme
Bir Veri Tablosu oluşturduktan sonra kolonlar eklemeye başlayabilirsiniz. Bir sütun eklemek için, öncelikle DataColumn sınıfının bir örneğini oluşturmanız gerekir ve ColumnName ve DataType gibi özelliklerini ayarlamanız gerekir.
Bir Veri Tablosuna üç kolon ekleme örneği işte şöyledir:
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 tablosuna Id sütunu gibi birden fazla sütun ekleyebilirsiniz.
Veri Satırları Ekleme
Sütunları tanımladıktan sonra, DataTable'ya satır eklemeye başlayabilirsiniz. Bir satır eklemek için, DataRow sınıfının yeni bir örneğini oluşturup gerekli verilerle alanlarını doldurmanız gerekir.
Bir DataTable'a yeni bir satır eklemenin bir örneği:
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 bir defada birden fazla DataTable satır 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 içinde saklanan verilere, Rows ve Columns koleksiyonları arasında yineleme yaparak erişebilirsiniz. Bir DataTable içeriğinin konsolda nasıl görüntüleneceğine dair 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 içindeki verileri, DataRow nesnelerindeki değerleri güncelleyerek değiştirebilirsiniz. Belirli bir çalışanın yaşını güncelleme örneği işte şöyledir:
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
Bir 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
Unutmayın ki, bir DataRow üzerinde Delete çağırmak sadece satırı silinmek üzere işaretler. Silinen satırları kalıcı olarak kaldırmak için DataTable üzerinde AcceptChanges yöntemini çağırmanız gerekir.
Çoklu Tabloları Yönetme
Bazı durumlarda, aynı anda birden çok veri tablosuyla çalışmanız gerekebilir. Birden fazla Veri Tablosu nesnesini saklamak ve bunlar arasındaki ilişkileri yönetmek için bir veri kümesi değişkeni oluşturabilirsiniz.
LINQ ile Veri Sorgulama
LINQ (Dil Entegre Sorgulama), DataTable nesneleri dahil çeşitli veri kaynaklarından veri sorgulamanıza olanak tanıyan C#'taki güçlü bir özelliktir. DataTables ile LINQ kullanmak için, System.Linq ad alanını içe aktarmanız gerekir. 25 yaşından büyük çalışanları filtrelemenin bir örneği işte şöyledir:
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 ve bir DataTable'nın sıralı veya filtreli bir görünümünü oluşturmanıza olanak tanıyan başka bir faydalı sınıftır. Bu, özellikle verileri DataGridView gibi bir UI kontrolünde görüntülemeniz gerektiğinde yararlıdır. Bir DataGridView kontrolüne veri eklemek için bir DataTable'dan veri bağlaması 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
DataTable'ı IronPDF ile PDF'e Aktarmak
IronPDF, .NET uygulamaları içinde PDF belgeleri oluşturmayı, okumayı ve düzenlemeyi mümkün kılan kullanıcı dostu PDF manipülasyon özellikleri ile dolu güçlü bir HTML'den PDF'e dönüştürücüdür.
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'yi bir PDF belgesine nasıl aktaracağımızı öğreneceğiz.
İlk olarak, IronPDF NuGet paketini yüklemelisiniz. Visual Studio'da Paket Yöneticisi Konsolunu 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
Sonraki adım olarak, DataTable'ı bir HTML tablosuna dönüştüren bir yardımcı yöntem oluşturun, IronPDF içeriği PDF belgelerinde 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 oluşturup bir 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'nizi 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üphanesi kullanarak bir DataTable'yi bir PDF belgesine nasıl aktaracağınızı öğrendiniz. Birincil anahtar sütunu, veri kümesi değişkenleri ve filtreleme ve sıralama için DataView'i dahil ederek verileriniz üzerinde daha fazla kontrol ve esneklik sağlayacaksınız. Artık DataTable'ları ve IronPDF'i DataTable'lar ile birlikte kullanarak C# uygulamalarınızda profesyonel görünümlü PDF raporları nasıl oluşturacağınızı iyi bir şekilde anlamış olmalısınız.
IronPDF, özelliklerinin ücretsiz denemesini sunarak, satın almadan önce yeteneklerini keşfetmenize olanak tanır.
Sıkça Sorulan Sorular
C#'da bir DataTable nedir?
.NET cercevesinde, bir DataTable gelis-tiricilerin, tablosal bir şekilde veri depolamasina, manipüle etmesine ve sorgulamasina olanak tanıyan çok yonlu bir veri yapisidir ve uygulamalarda yapilandi-rilmis verileri yönetmek için esastir.
C#'da bir DataTable'i PDF dokümanina nasıl dönüştürebilirim?
C#'da bir DataTable'i PDF dokümanina dönüştürmek için, ilk önce DataTable'i bir HTML tablosuna donuşturun. IronPDF'nin HtmlToPdf sınıfini kullanarak HTML'yi bir PDF dokümani olarak oluşturun ve ortaya çıkan dosyayi kaydedin.
C#'da bir DataTable nasıl oluşturulur?
C#'da bir DataTable oluşturmak, System.Data namespace'ini iceri aktarmayi ve DataTable sınıfini yapılandiricisi kullanarak örneklemeyi içerir, isteğe baglı olarak DataTable için belirli bir ad saglamak mümkündür.
Bir DataTable'e sütunlar eklemenin adim-lari nelerdir?
Bir DataTable'e sütunlar eklemek için DataColumn sınıfının örneklerini yaratin, ColumnName ve DataType gibi özellikleri yapılandirin ve bunlari DataTable'in Columns koleksiyonuna ekleyin.
Raporlama amaciyla bir DataTable'den veri nasıl PDF'ye aktarabilirim?
Bir DataTable'den PDF'ye veri aktarabilir-siniz, DataTable'i bir HTML tablo formatina çevirerek, ardindan bu HTML'yi PDF dokümanina dönüştürmek için IronPDF kullanarak profesyonel sınıf raporlar oluşturabilirsiniz.
C#'da bir DataTable'e satirlar nasıl ek-lenir?
C#'da bir DataTable'e satirlar eklemek için yeni bir DataRow örnegi oluşturun, verilerle doldurun ve DataTable'in Rows koleksiyonuna ekleyin. Bu süreç, bir dongu kullanarak birden fazla satir için tekrar edilebilir.
LINQ nedir ve DataTables ile nasıl kullanilir?
LINQ (Language Integrated Query) C#'da güçlü bir sorgulama aracidir ve verileri, DataTables dahil olmak uzere çeşitli kaynaklardan filtrelemeyi, siralamayi ve manipulasyonu saglar, veri işlemlerini daha kolay hale getirir.
Bir DataTable'i bir DataView kullanarak nasıl filtreler ve siralarsiniz?
Bir DataView, bir DataTable'in filtrelenmis veya siralanmis bir görünümünü oluşturmak için uygun bir yol sunar. RowFilter ve Sort özelliklerini ayarlayarak verilerin nasıl gösterilecegini kontrol edebilirsiniz, bu da özellikle UI bileşenlerinde yararlıdır.
DataTable'leri PDF'ye ihrac etmek için gerekli kütüphaneyi nasıl kurarim?
DataTable'leri PDF'ye ihraç etmek için gerekli IronPDF kütüphanesini kurmak için Visual Studio'daki Paket Yöneticisi Konsolunu kullanarak Install-Package IronPdf komutunu çalıştırin.




