İhtiyaç olunca kullanmak zorunda kalıyor insan. Buraya da not almakta fayda var. MySQL ile uzun yıllar önce yaptığım bir uygulamaya admin arayüzünü C# ile desktop’a almam gerekti. Buna benzer kullandığınız host yada kişisel veritabanınızla ortak veri alışverişi yapmak için zaman zaman MySQL-C# ikilisini kullanmak gerekebiliyor.
Kullanmaya başlamadan önce yüklü gelmeyen MySQL Driver için Connector/Net ‘i aşağıdaki linkten indirmemiz ve kurmamız gerekiyor.
http://dev.mysql.com/downloads/connector/net/
Projemize Add Reference diyerek .NET sekmesine giriyor ve MySql.Data referansını bularak ekliyoruz.
Daha sonra kullanım için uygulamamız içinden referansları çağırıyoruz;
using MySql.Data; using MySql.Data.MySqlClient;
Güncel bağlantılar için genelde connectionstrings.com ‘a hep göz atarım. Gene öyle yaptım;
2 tip bağlantı şeklini de server’ımızın hata verip vermeme durumuna göre kullanabiliriz;
// Bu bir public MySqlConnection mysqlbaglan= new MySqlConnection("Server=localhost;Database=hmustak;Uid=fake;Pwd='';"); // Bu da iki public MySqlConnection mysqlbaglan= new MySqlConnection("Server=localhost;Database=hmustak;Uid=fake;Pwd='';Encrypt=false;AllowUserVariables=True;UseCompression=True");
Sonra yandaki resimde de göreceğiniz gibi veritabanına bağlanabileceğim 5 bilginin dinamik girişini sağlamak üzere textbox koydum. Bağlantı için gereken herşeyi buradan çekmeyi düşünüyorum.
Ek olarak en alta 2 adet textbox daha koyduğumu göreceksiniz. O textboxlarda gönderdiğim connection string’in son halini ve dönecek olan olası hataları görüntülemek istedim. Kod içinde textbox6 ve 7 de bunları göreceksiniz.
İşlemi ayrı bir class içinde yaptığım için o class’a DB.cs ismini verdim. İçeriği şöyle;
class DB { MySqlConnection baglanti; public bool baglanti_kontrol() { try{ baglanti = new MySqlConnection("Server="+Form1.IP+";Database="+ Form1.DBase +";Uid="+ Form1.User +";Pwd="+ Form1.Pass + ";SslMode=none"); //public MySqlConnection mysqlbaglan= new MySqlConnection("Server=localhost;Database=blog;Uid=root;Pwd='';Encrypt=false;AllowUserVariables=True;UseCompression=True"); baglanti.Open(); return true; //Veritabanına bağlanırsa baglanti_kontrol fonksiyonu "true" değeri gönderecek } catch (Exception err){ Form1.Mesaj = err.Message; Form1.Hata = "Server=" + Form1.IP + ";Database=" + Form1.DBase + ";Uid=" + Form1.User + ";Pwd=" + Form1.Pass + ";"; return false; //Veritabanına bağlanamazsa "false" değeri dönecek }//catch }//bool baglanti_kontrol() }//class
Anaform altındaki yapı ve event’lar da aşağıdaki gibi yazıldı;
public partial class Form1 : Form { public static String Mesaj; public static String Hata; public static String IP; public static String Port; public static String User; public static String Pass; public static String DBase; public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { IP = this.textBox1.Text; Port = this.textBox2.Text; User = this.textBox3.Text; Pass = this.textBox4.Text; DBase = this.textBox5.Text; textBox6.Text = ""; textBox7.Text = ""; //this.Text = "Bağlanıyor..."; DB _vt = new DB(); if (_vt.baglanti_kontrol() == true){ MessageBox.Show("Bağlantı kuruldu..!","Başardın..!"); this.Text = "Bağlantı kuruldu."; } else{ //this.Text = "Hata !!!"; textBox6.Text = Mesaj; textBox7.Text = "Hata:"+Hata; } } private void Form1_KeyUp(object sender, KeyEventArgs e) { } private void textBox6_DoubleClick(object sender, EventArgs e) { textBox6.SelectAll(); } }
Kişisel kullanım için basit bir araç.
Hakan Müştak @2018
Bir yanıt yazın