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
teşekkürler hocam güzel yazı.
Tek kelime ile harika
Bu faydalı paylaşımınız için teşekkürler.
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.
Yanlışlarım varsa afrfola demişssin dibini gorduk Ellerine Kollarına Saglık, ; yabancı sitelerde harap oluyormusum Çok sağol
hocam benimle irtibata geçebilirmişsiniz acaba sizden yardım isticektimde musaitseniz
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.
Kürşat Bey Merhabalar;
Öncelikle vermiş oldugunuz bilgiler için teşekkür ederim. İyi çalışmalar
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 )
Yazılarınız için teşekkür ederim elinize sağlık derdime çare oldu.