IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# DataTable (Geliştiriciler İçin Eğitim)

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Jacob Mellor
Updated: 21 Nisan 2026

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;

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();

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 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);

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);

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);
}

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();
}

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;
}

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
}

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"]);
}

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"]);
}

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");
    }
}

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:

PM > Install-Package IronPdf

Paket yüklendikten sonra, kodunuzda gerekli ad alanlarını içe aktararak başlayabilirsiniz:

using IronPdf;
using 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();
}

Ş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);
}

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);

Bu, DataTable içeriğini tablo formatında içeren 'Employees.pdf' adlı bir PDF dosyası oluşturacaktır.

C# DataTable (Geliştiriciler için Nasıl Çalışır Öğretici) - Şekil 1

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.

Jacob Mellor, Teknoloji Direktörü @ Team Iron
Teknoloji Direktörü

Jacob Mellor, Iron Software'de Baş Teknoloji Yöneticisidir ve C# PDF teknolojisinde öncü bir mühendisdir. Iron Software'ın ana kod tabanının ilk geliştiricisi olarak, CEO Cameron Rimington ile birlikte şirketin ürün mimarisini 50'den fazla kişilik bir şirkete dönüştürmüştür ve NASA, Tesla ve dünya genelindeki devlet kurumlarına hizmet etmektedir.

...
Daha Fazla Oku

İlgili Makaleler

Key in blue circle

Ücretsiz 30 günlük Deneme Anahtarınızı anında edinin.

Your trial license will be sent to your email address

Herhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.

bullet_checkedKredi kartı veya hesap oluşturma gerektirmezHerhangi bir sınırlama yoktur. %100 erişim. Kredi kartı gerekmez.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Ücretsiz Canlı Demo rezervasyonu yapın
Booking Badge

Dünya Çapında Milyonlarca Mühendisin Güvendiği

Iron Software müşteri logoları
Bağımsız Danışmanlık Alın
Aşağıdaki formu doldurun veya sales@ironsoftware.com adresine e-posta gönderin
Bilgileriniz daima gizli kalacaktır.
Dünya Çapında Milyonlarca Mühendisin Güvendiği
Iron Software müşteri logoları
Ücretsiz 30 Günlük Deneme Anahtarınızı anında alın.
Kredi kartı veya hesap oluşturma gerektirmez