C# ile MySql Bağlantı

İ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;

https://www.connectionstrings.com/mysql/

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

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

question razz sad evil exclaim smile redface biggrin surprised eek confused cool lol mad twisted rolleyes wink idea arrow neutral cry mrgreen

*

Captcha Kontrolü * Zaman aşımı, sayfayı tekrar yükleyin


Top