IRONSOFTWAREHOME
GELIŞTIRICI GÜNCELLEMELERI

C# MySQL Bağlantısı (Geliştiriciler İçin Nasıl Çalışır)

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

C# MySQL Entegrasyonuna Giriş

C# uygulamalarını MySQL veritabanlarına bağlamak, verileri etkin bir şekilde depolamak, almak ve yönetmek için ilişkisel bir veritabanının gücünden yararlanma imkanı sunar. Bu kılavuz, MySQL'yi C# uygulamalarıyla entegre etmek için adım adım bir süreç sağlar ve IronPDF kütüphanesi kullanarak MySQL veritabanınızdaki verilerden nasıl PDF oluşturulacağını gösterir.

Ön Koşullar

Bu kılavuzla birlikte ilerlemek için gerekli öğeler:

  • Visual Studio veya herhangi bir C# IDE
  • Bir MySQL Veritabanı (kurulu ve çalışır durumda)
  • IronPDF kütüphanesi (PDF oluşturma için)

MySQL Veritabanını Kurma

MySQL'i Kurma ve Yapılandırma

  1. mysql.com'dan son MySQL sürümünü indirin.
  2. Kurulum programını çalıştırın ve kurulum talimatlarını izleyin. MySQL Sunucusu ve MySQL Workbench'ı dahil etmek için 'Geliştirici Varsayılanı'nı seçin.
  3. Yapılandırma sırasında MySQL kök kullanıcı kimlik bilgilerini ayarlayın ve MySQL hizmetinin çalıştığından emin olun.

Örnek Bir Veritabanı ve Tablolar Oluşturma

  1. MySQL Workbench'i açın ve sunucuya bağlanın.
  2. SQL komutları kullanarak yeni bir veritabanı ve örnek bir tablo oluşturun:
CREATE DATABASE SampleDB;
USE SampleDB;
CREATE TABLE Employees (
    EmployeeID INT PRIMARY KEY AUTO_INCREMENT,
    FirstName VARCHAR(50),
    LastName VARCHAR(50),
    Position VARCHAR(50),
    Salary DECIMAL(10, 2)
);
Text
  1. Örnek verileri ekleyin:
INSERT INTO Employees (FirstName, LastName, Position, Salary) 
VALUES ('John', 'Doe', 'Software Developer', 80000),
       ('Jane', 'Smith', 'Data Analyst', 75000);
Text

Uzaktan Erişim için MySQL Kullanıcısını Ayarlama (İsteğe Bağlı)

Uzaktan erişim için gerekli izinlere sahip bir MySQL kullanıcısı oluşturun:

CREATE USER 'remoteUser'@'%' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON SampleDB.* TO 'remoteUser'@'%';
FLUSH PRIVILEGES;
Text

C#'yi MySQL Veritabanına Bağlama

C#'de MySql.Data Kütüphanesini Yükleme

C# uygulamalarını MySQL'e bağlamak için, genellikle Connector/NET olarak adlandırılan MySQL Connector/NET kütüphanesini kullanırız. Bu, MySQL'in resmi .NET sürücüsüdür ve NuGet aracılığıyla yüklenebilir.

  1. Visual Studio'yu açın ve yeni bir C# Konsol Uygulaması oluşturun.
  2. MySql.Data kütüphanesini NuGet Paket Yöneticisi üzerinden ekleyin:
    • Projeye sağ tıklayın > NuGet Paketlerini Yönet > Gözat > MySql.Data arayın ve yükleyin.

Bağlantı Kodunu Yazma

Aşağıdaki kod örneği, MySQL'e bir bağlantı kurmanın nasıl yapılacağını gösterir:

using System;
using MySql.Data.MySqlClient;

public class Program
{
    // Connection string containing the server, database, user credentials, etc.
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";
    
    private void Initialize()
    {
        // Create a MySQL connection object
        MySqlConnection connection = new MySqlConnection(connectionString);
        try
        {
            connection.Open();
            Console.WriteLine("Connected to MySQL Database!");
        }
        catch (Exception ex)
        {
            Console.WriteLine($"Error: {ex.Message}");
        }
        finally
        {
            connection.Close(); // Ensure the connection is closed after use
        }
    }
}

Açıklama:

  • Bağlantı Dizesi: Sunucu, veritabanı adı, kullanıcı kimliği ve şifre gibi bilgileri içerir.
  • MySqlConnection: Bağlantıyı kurmak için kullanılır.
  • Open() Metodu: Bağlantıyı açmaya çalışır.
  • İstisna Yönetimi: Bağlantı hatalarını düzgün bir şekilde yönetmek için istisnaları yakalayın.

Bağlantı İçin DNS SRV Kayıtlarını Kullanma (Opsiyonel)

Uygulamanız bulutta barındırılıyorsa veya MySQL veritabanına DNS SRV kayıtlarıyla bağlanması gerekiyorsa, sunucu adını veritabanının IP'sine çözümleyen uygun DNS girdisi ile değiştirin.

string connectionString = "Server=mysql.example.com;Database=SampleDB;User ID=root;Password=yourpassword;";

Bağlantı Havuzu

Varsayılan olarak, MySQL Connector/NET bağlantı havuzunu destekler, bu da veritabanı bağlantılarını daha verimli bir şekilde yönetmeye yardımcı olur. Bağlantı havuzu, sürekli açık ve kapalı bağlantılar oluşturma yükünü azaltarak mevcut bağlantıları bir havuzdan yeniden kullanır.

Bağlantı havuzu davranışını özelleştirmek istiyorsanız, bağlantı dizginizi şu şekilde ayarlayabilirsiniz:

string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;Pooling=true;";

Yaygın Hataları Ele Alma

Yaygın sorunlar, yanlış bağlantı dizgeleri, güvenlik duvarı kısıtlamaları veya MySQL hizmetinin çalışmıyor olması gibi olabilir. Tüm yapılandırma bilgilerini doğru girdirdiğinizden ve MySQL hizmetinin etkin olduğundan emin olun.

C# ve MySQL ile CRUD İşlemleri Yapma

Veritabanı İşlemleri İçin C# Sınıfı Oluşturma

Kod organizasyonu için, tüm veritabanı işlemlerini yönetecek bir DatabaseHelper sınıfı oluşturun. Bu sınıf, Ekleme, Okuma, Güncelleme ve Silme verileri (CRUD) işlemleri için yöntemler içerecektir.

using System;
using MySql.Data.MySqlClient;

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Method to insert a new employee record
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);

            // Add parameters to prevent SQL injection
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);

            connection.Open();
            cmd.ExecuteNonQuery(); // Execute the insert command
        }
    }
}

Açıklama:

  • Parametreleştirme: @Parameter kullanmak, SQL enjeksiyonu riskini azaltır.
  • connection.Open(): MySQL bağlantısını açar.
  • cmd.ExecuteNonQuery(): ekleme sorgusunu yürütür.

MySQL Veritabanına Veri Ekleme

Yeni çalışan verilerini eklemek için InsertEmployee metodunu çağırın:

DatabaseHelper dbHelper = new DatabaseHelper();
dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);

Veri Alma ve Gösterme

Verileri alıp konsolda görüntüleyin:

public void GetEmployees()
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "SELECT * FROM Employees";
        MySqlCommand cmd = new MySqlCommand(query, connection);
        connection.Open();

        using (MySqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                Console.WriteLine($"{reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
            }
        }
    }
}

Açıklama:

  • ExecuteReader(): seçme sorgusunu yürütür ve bir MySqlDataReader nesnesi döndürür.
  • reader.Read(): Sonuç kümesini iter, her çalışan detaylarını gösterir.

Kayıtları Güncelleme ve Silme

Bir çalışanın maaşını güncellemek için bir örnek:

public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
{
    using (var connection = new MySqlConnection(connectionString))
    {
        string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
        MySqlCommand cmd = new MySqlCommand(query, connection);

        // Parameterize the SQL command
        cmd.Parameters.AddWithValue("@Salary", newSalary);
        cmd.Parameters.AddWithValue("@EmployeeID", employeeId);

        connection.Open();
        cmd.ExecuteNonQuery(); // Execute the update command
        Console.WriteLine("Employee salary updated successfully!");
    }
}

Güncelleme Komutu: Personel ID'si baz alınarak Maaş sütununu güncelleyen parametrik sorgu kullanır.

IronPDF ile MySQL Verilerinden PDF Üretme

IronPDF'e Giriş

IronPDF, geliştiricilerin C# uygulamaları içinde kolayca PDF belgeleri oluşturmasına, düzenlemesine ve manipüle etmesine olanak tanıyan sağlam bir kütüphanedir. Otomatik rapor üretimi, belge manipülasyonu veya HTML-PDF dönüştürme gerektiren veri odaklı uygulamalar için mükemmel bir araç haline getiren geniş bir PDF işlevselliği desteği sunar. Dinamik web sayfalarını PDF dosyalarına dönüştürmeniz veya sıfırdan özel PDF'ler oluşturmanız gerekirse, IronPDF süreci birkaç satır kod ile kolaylaştırır.

IronPDF'nin Ana Özellikleri

  • HTML'den PDF'ye Dönüştürme: IronPDF'in öne çıkan özelliklerinden biri, HTML içeriğini tamamen biçimlendirilmiş PDF belgelere dönüştürme yeteneğidir. Bu özellik, dinamik web içeriğinden rapor oluşturmak veya web formatında saklanan verilerle çalışırken özellikle kullanışlıdır.
  • PDF Düzenleme: IronPDF, metin, resimler, tablolar ve daha fazlası gibi içeriği ekleme, kaldırma ve değiştirme dahil olmak üzere mevcut PDF'leri düzenleme işlemlerini gerçekleştirir. Bu, var olan belgeleri işlemek veya güncellemek zorunda olan uygulamalar için idealdir.
  • PDF Birleştirme ve Bölme: IronPDF ile, birden fazla PDF'yi tek bir dokümanda birleştirebilir veya büyük bir PDF'yi daha küçük dosyalara bölebilirsiniz. Bu özellik, büyük belge koleksiyonlarını düzenlemek ve yönetmek için faydalıdır.
  • Stil ve Özelleştirme: HTML'den gelen PDF'leri oluştururken, belgeyi stilize etmek ve uygulamanızın tasarımına uygun bir düzen elde etmek için CSS kullanabilirsiniz. IronPDF, PDF'lerinizin görünümü üzerinde tam kontrol sağlar ve belirlediğiniz özel gereksinimleri karşıladıklarından emin olur.

C# Projenizde IronPDF'i Ayarlama

IronPDF kullanmak için NuGet Paket Yöneticisi aracılığıyla Visual Studio'da yükleyin:

PM > Install-Package IronPdf

MySQL Verilerini PDF Formatına Dönüştürme

İşte çalışan verilerinden bir PDF raporu oluşturmayı gösteren tam kod örneği:

using System;
using MySql.Data.MySqlClient;
using IronPdf;

public class Program
{
    private static string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    public static void Main(string[] args)
    {
        // Perform CRUD operations
        DatabaseHelper dbHelper = new DatabaseHelper();
        // Insert a new employee
        dbHelper.InsertEmployee("Alice", "Brown", "Project Manager", 90000);
        // Display employees
        dbHelper.GetEmployees();
        // Update an employee's salary
        dbHelper.UpdateEmployeeSalary(1, 95000);
        // Generate a PDF report
        dbHelper.GenerateEmployeeReportPDF();
        Console.WriteLine("Operations completed.");
    }
}

public class DatabaseHelper
{
    private string connectionString = "Server=localhost;Database=SampleDB;User ID=root;Password=yourpassword;";

    // Insert employee into database
    public void InsertEmployee(string firstName, string lastName, string position, decimal salary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "INSERT INTO Employees (FirstName, LastName, Position, Salary) VALUES (@FirstName, @LastName, @Position, @Salary)";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@FirstName", firstName);
            cmd.Parameters.AddWithValue("@LastName", lastName);
            cmd.Parameters.AddWithValue("@Position", position);
            cmd.Parameters.AddWithValue("@Salary", salary);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee {firstName} {lastName} inserted successfully!");
        }
    }

    // Get employees from the database and display them
    public void GetEmployees()
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                Console.WriteLine("\nEmployee List:");
                while (reader.Read())
                {
                    Console.WriteLine($"{reader["EmployeeID"]} - {reader["FirstName"]} {reader["LastName"]}, Position: {reader["Position"]}, Salary: {reader["Salary"]}");
                }
            }
        }
    }

    // Update the salary of an employee
    public void UpdateEmployeeSalary(int employeeId, decimal newSalary)
    {
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "UPDATE Employees SET Salary = @Salary WHERE EmployeeID = @EmployeeID";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            cmd.Parameters.AddWithValue("@Salary", newSalary);
            cmd.Parameters.AddWithValue("@EmployeeID", employeeId);
            connection.Open();
            cmd.ExecuteNonQuery();
            Console.WriteLine($"Employee ID {employeeId}'s salary updated to {newSalary}.");
        }
    }

    // Generate a PDF report of all employees
    public void GenerateEmployeeReportPDF()
    {
        string htmlContent = "<h1>Employee Report</h1><table border='1'><tr><th>EmployeeID</th><th>First Name</th><th>Last Name</th><th>Position</th><th>Salary</th></tr>";
        
        using (var connection = new MySqlConnection(connectionString))
        {
            string query = "SELECT * FROM Employees";
            MySqlCommand cmd = new MySqlCommand(query, connection);
            connection.Open();

            using (MySqlDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    htmlContent += $"<tr><td>{reader["EmployeeID"]}</td><td>{reader["FirstName"]}</td><td>{reader["LastName"]}</td><td>{reader["Position"]}</td><td>{reader["Salary"]}</td></tr>";
                }
            }
        }
        
        htmlContent += "</table>";

        // Use IronPDF to convert HTML to PDF
        ChromePdfRenderer renderer = new ChromePdfRenderer();
        PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
        pdf.SaveAs("EmployeeReport.pdf");
        Console.WriteLine("PDF Report generated successfully!");
    }
}

Kodun Açıklaması

  1. MySQL Veritabanına Bağlantı:

    • connectionString, MySQL sunucusunu, veritabanını, kullanıcıyı ve şifreyi tanımlar.
    • MySqlConnection kullanarak bağlanır ve CRUD işlemlerini MySqlCommand ile yaparsınız.
  2. Yerleştirme İşlemi (InsertEmployee):

    • SQL enjeksiyonunu önlemek için parametreli sorgularla (@FirstName, @LastName, vb.) MySqlCommand kullanır.
    • Bağlantı açıldıktan sonra (connection.Open()), ExecuteNonQuery() INSERT SQL ifadesini çalıştırır.
  3. Okuma İşlemi (GetEmployees):

    • Tüm çalışan kayıtlarını getirmek için bir SELECT * sorgusu yürütür.
    • Sonuç kümesini yineleyip her kaydı konsolda göstermek için bir MySqlDataReader kullanır.
  4. Güncelleme İşlemi (UpdateEmployeeSalary):

    • Metod, çalışanın maaşını güncellemek için bir employeeId ve bir newSalary kabul eder.
    • Parametreli bir UPDATE SQL sorgusu kullanır.
  5. PDF Generation (GenerateEmployeeReportPDF):

    • Çalışan verilerini basit bir tablo yapısı ile bir HTML dizesine toplar.
    • HTML içeriği, PDF raporu oluşturmak için IronPDF'nin RenderHtmlAsPdf metoduna geçirilir.
    • Ortaya çıkan PDF, EmployeeReport.pdf olarak kaydedilir.

Sonuç

Bu makalede, MySQL'i bir C# uygulaması ile entegre etmek için gerekli adımları inceledik. Veritabanının kurulumundan CRUD işlemlerinin gerçekleştirilmesine ve IronPDF ile PDF üretilmesine kadar, veri odaklı uygulamalar oluştururken kritik olan geniş bir temel konular yelpazesi ele alındı. İşte ana kavramların özeti:

  • MySQL ve C# Entegrasyonu: MySql.Data kütüphanesini kullanarak bir MySQL veritabanına nasıl bağlanılacağını, veritabanı bağlantıların nasıl yönetileceğini ve parametreli sorgular kullanarak CRUD işlemlerinin nasıl yapılacağını gösterdik. Bu, verilerin güvenli ve düzenli bir şekilde saklanmasını, güncellenmesini ve alınmasını sağlar.
  • CRUD İşlemlerinin Gerçekleştirilmesi: Çalışan verilerini ekleme, güncelleme ve okuma için örnek yöntemlerle, bu mantığı gerçek dünya veritabanlarında diğer kayıt türlerini yönetmek için genişletebilirsiniz. Parametreli sorguların kullanılması ayrıca SQL enjeksiyon saldırılarını azaltarak uygulamanızın güvenliğini sağlar.
  • IronPDF ile PDF Üretimi: IronPDF, dinamik HTML içeriğinden profesyonel görünümlü PDF'ler oluşturmayı basit hale getirir. MySQL'den alınan verileri bir HTML tablosuna dönüştürerek, fatura, rapor, özet ve daha fazlası için faydalı olabilecek özelleştirilmiş raporlar oluşturabilir ve bunları PDF olarak saklayabiliriz. IronPDF'nin basit API'si, uygulamalarında PDF oluşturmayı ele alması gereken her C# geliştiricisi için mükemmel bir araçtır.

C# ve MySQL'i birleştirerek geliştiriciler, verileri saklayıp yöneten ve PDF raporlama gibi gelişmiş işlevler sunan sağlam uygulamalar oluşturabilirler. Bu yetenekler, doğru veri yönetimi ve raporlamanın kritik olduğu finans sektörü veya sağlık hizmetleri gibi farklı sektörlerde faydalıdır.

C# uygulamalarına PDF oluşturmayı dahil etmek isteyen geliştiriciler için IronPDF, tüm özellikleri denemenizi sağlayan bir araçtır. Basit belgeler veya karmaşık raporlar oluşturmanız gereksin, IronPDF, iş akışınıza PDF oluşturmayı otomatikleştirmek için paha biçilmez bir araç olabilir.

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