İ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