C Sharp ile MySQL Bağlantısı

C Sharp ile MySQL bağlantısı yapmanız gerektiğinde çok fazla kaynak bulamıyorsunu malesef. C Sharp kullanırken genelde MsSQL kullanılır. MsSQL  C sharp için daha uygundur bence ama tabi bazı durumlarda MySQL kullanmak isteyebilirsiniz. Açıkcası C Sharp hakkında çok bilgim olduğu söylenemez ancak kendi işimi görecek kadar bilgim var.

C# ile ilk projemi yaparken MySQL veritabanı kullanmam gerekiyordu. Basitçe C# için MySQL bağlantısı kurma, C# ile MySQL veritabanına veri ekleme, C# ile MySQL veritabanından veri silme ve C# ile veritabanındaki veriyi düzenleme işlemlerinin kodlarını vereceğim.. Bu konu ile ilgili sorusu olan yorum yazabilir.. Elimden geldiğince yardımcı olmaya çalışırım.

 

CSharp Mysql bağlantısı kurmak için önce projeye Mysql_data.dll dosyasını eklemeniz gerekiyor. Mysql_Data.dll dosyasını yazının en altında bulunan linkten indirebilirsiniz. Mysql_data.dll dosyasını projenizin bin klasörü altındaki debug klasörüne kopyalayın. Ardından Referans olarak mysql.data.dll dosyasını ekleyin. Eğer referans eklemeyi bilmiyorsanız  Csharp Referans Ekleme başlıklı yazımdan öğrenebilirsiniz.

 

Ardından Mysql kullanacağınız her formun başına

using MySql.Data;
using MySql.Data.MySqlClient; bu komutları ekleyin

C# ile MySQL Bağlantısı

public static string sqlbaglanti = “Database=veritabaniadi; Data Source=localhost; User ID=root;”;
MySqlConnection baglanti = new MySqlConnection(Form1.sqlbaglanti);

// sqlbaglanti değişkenimizi public static string olarak tanımladım. Çünkü her form için ayrı kod yazmaktansa form1 de bu kodu yazıp diğerlerinde sadece ikinci satırı yazarak bağlantı kurmak daha kolay…

C# ile MySQL Veritabanında Veri gösterme (MySQL Select)

// Formun başına aşağıdaki kodu ekliyoruz..

MySqlConnection baglanti = new MySqlConnection(Form1.sqlbaglanti);

// Ardından Veri gösterme komutumuzu kendimize göre düzenliyoruz.

MySQL Veritabanındaki tabloyu Datagridviewde gösterme

baglanti.Open();
MySqlDataAdapter listele = new MySqlDataAdapter(“select * from kullanicilar”, baglanti);
DataTable oku = new DataTable();
listele.Fill(oku);
dataGridView1.DataSource = oku;
baglanti.Close();

MySQL Tablodaki bir kolonu textboxa yazdırma

baglanti.Open();
MySqlCommand cmd = new MySqlCommand(“select * from kullanicilar where Id = ‘1’  “, baglanti);
int Count = Convert.ToInt32(cmd.ExecuteScalar());

if (Count != 0)
{

MySqlDataReader oku = cmd.ExecuteReader();
while (oku.Read())
{
textBox1.Text = oku[“isim”].ToString();

}

}
baglanti.Close();

 

C# ile MySQL Veritabanına Veri Ekleme (MySQL Insert)

// Formun başına aşağıdaki kodu ekliyoruz..

MySqlConnection baglanti = new MySqlConnection(Form1.sqlbaglanti);

// Ardından Veri ekleme komutumuzu kendimize göre düzenliyoruz.

MySqlCommand ekle = new MySqlCommand(“insert into kullanici (isim, soyisim, telefon) VALUES (‘” + textBox1.Text + “‘, ‘” + textBox2.Text + “‘, ‘” + textBox3.Text + “‘)”, baglanti);
baglanti.Open();
if (ekle.ExecuteNonQuery() == 1)
label1.Text = “Kullanici Başarıyla Eklenmiştir”;
else
label1.Text = “Kullanici Malesef Eklenemedi. Hata Numarasi(1)”;
baglanti.Close();

 

C# İle MySQL Veritabanındaki Veriyi Güncelleme (MySQL update)

// Formun başına aşağıdaki kodu ekliyoruz..

MySqlConnection baglanti = new MySqlConnection(Form1.sqlbaglanti);

// Ardından Veri silme komutumuzu kendimize göre düzenliyoruz.

MySqlCommand dnl = new MySqlCommand(“update kullanici set telefon = ‘” + telefonyeni + “‘ where Id = ‘” + xyid+ “‘”, baglanti);
baglanti.Open();
if (dnl.ExecuteNonQuery() == 1)
{
label8.Text = “Kullanıcı Bilgileri Başarıyla Güncellenmiştir.”;
}
else
{
label8.Text = “Kullanıcı Bilgileri Malesef Güncellenemedi (Hata kodu 1)”;
}
baglanti.Close();

 

C# İle MySQL Veritabanından Veri Silme (MySQL Delete)

// Formun başına aşağıdaki kodu ekliyoruz..

MySqlConnection baglanti = new MySqlConnection(Form1.sqlbaglanti);

// Ardından Veri silme komutumuzu kendimize göre düzenliyoruz.

MySqlCommand cmd = new MySqlCommand(“DELETE FROM kullanici WHERE id=(‘” + kullanici.id + “‘)”, baglanti);
baglanti.Open();
if (cmd.ExecuteNonQuery() == 1)
{
MessageBox.Show(“Silindi… Ekran Kapatılıyor..”);

this.Close();
}
else
{
MessageBox.Show(“Hata.. Kullanici Silinemedi..”);
}
baglanti.Close();

 

 

Gözümden kaçan hatalar olabilir.. Yanlış yaptığım şeyler olabilir. Böyle bir şey farkederseniz lütfen bildirin.. Kodlar kulandığım kodlardır ben hataya rast gelmedim ama buraya geçirken daha anlaşılır olsun diye bir kaç düzenleme yaptım.. İyi çalışmalar dilerim..

 

Mysql.Data.dll dosyasını indirmek için tıklayın

Kürşad ALTAN

 

Sevebilirsin...

10 Yanıt

  1. sercan çetin dedi ki:

    teşekkürler hocam güzel yazı.

  2. Hakan Arpa dedi ki:

    Tek kelime ile harika

  3. Mahmut dedi ki:

    Bu faydalı paylaşımınız için teşekkürler.

  4. Oğuzhan Erdoğan dedi ki:

    C# ile mysql bağlantısı için gereken herşey var. Çok teşekkür ederim. C# ile geliştirdiğim programda oldukça gerekliydi.

  5. Yekta Yekta dedi ki:

    Yanlışlarım varsa afrfola demişssin dibini gorduk Ellerine Kollarına Saglık, ; yabancı sitelerde harap oluyormusum Çok sağol 

  6. emrah tuna dedi ki:

    hocam benimle irtibata geçebilirmişsiniz acaba sizden yardım isticektimde musaitseniz

  7. Shaig dedi ki:

    Mrb arkadaslar bir proje uzerinde calisiyorum. Durum soyle ben datagridviewden secdigim kayidi sile biliyorum yalniz birden fazla kaydi silme kodunu bi turlu yazamadim. yardim ederseniz minnetar olurum. istiyorum ki yaratdigim checkBox da istedigim satirlari check edib sile biliyim.

  8. Mehmet DUMAN dedi ki:

    Kürşat Bey Merhabalar;

    Öncelikle vermiş oldugunuz bilgiler için teşekkür ederim. İyi çalışmalar

  9. Hakan KUCUK dedi ki:

    Elinize saglık. 
    Eski delphiciyim ve. C# a geçtim.  Büyük bir proje yazıyorum veritabanım Mysql.  Her connections open ve close olayından sonra mysql tarafında connections sayısı artıyor.  Bu da belli bir süre sonra max seviyeye ulaşıyor. Çözümünüz nedir. (Her 30 sn. De bir veri tabanından yeni veri varmi kontrol ediyorum )

Hakan Arpa için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.