İ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;
1 2 | 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;
1 2 3 4 5 | // 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;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | 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ı;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | 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