- Katılım
- 28 Mar 2021
- Mesajlar
- 3.316
- Çözümler
- 29
- İfade skoru
- 29.636
Evet, MSSQL daha iyi çalışıyor olabilir ama MSSQL bulması biraz daha zor. Ondan burada C# MySQL bağlantısı yapmayı göstereceğim.
İlk başta MySQL Connector .NET indirmeniz lazım. Buradan indirebilirsiniz.
Kurduktan sonra Proje -> Başvuru Ekle kısmından MySQL Connector'ı Import ediyoruz.
Akabinde ise en üst kısma
kodunu ekleyerek kütüphaneyi import ediyoruz.
Şimdi ise kısaca nasıl bağlanacağınızı, veri yazdıracağınızı vs. göstereyim.
Bağlanmak için 3 değişkeni üst kısma ekleyeceğiz. 4. şart değil tabii.
Sonrasında ise bağlantımızı yapacağız. Bunun için fonksiyon yazabilirsiniz ya da basitçe program açılırken yapabilirsiniz. Ayrıca bağlantı ayarlarınızı App.Config dosyasından almanızı öneririm. Şart değil tabii.
Bağlantıyı da alttaki kodlarla kapatabilirsiniz.
Veri yazmak ve okumak için de alttaki komut dizisini kullanabilirsiniz.
Ancak dönüş list şeklinde olduğu için tekli değer istiyorsanız çağırdıktan sonra [0] gibi bir değer eklemelisiniz. Eğer liste şeklinde değer çekecekseniz foreach döngüsünü kullanabilirsiniz.
Örnek list kullanımı:
Örnek tekli veri çekim:
Başka sorularınız varsa sorabilirsiniz. Umarım faydalı olmuştur. Okuduğunuz için teşekkürler.
İlk başta MySQL Connector .NET indirmeniz lazım. Buradan indirebilirsiniz.
Kurduktan sonra Proje -> Başvuru Ekle kısmından MySQL Connector'ı Import ediyoruz.
Akabinde ise en üst kısma
Kod:
using MySql.Data.MySqlClient;
Şimdi ise kısaca nasıl bağlanacağınızı, veri yazdıracağınızı vs. göstereyim.
Bağlanmak için 3 değişkeni üst kısma ekleyeceğiz. 4. şart değil tabii.
C#:
public static MySqlConnection con;
public static MySqlCommand cmd;
public static MySqlDataReader dr;
public static bool isconnected = false;
Sonrasında ise bağlantımızı yapacağız. Bunun için fonksiyon yazabilirsiniz ya da basitçe program açılırken yapabilirsiniz. Ayrıca bağlantı ayarlarınızı App.Config dosyasından almanızı öneririm. Şart değil tabii.
C#:
try
{
string connectiondetails = "Server=sunucunuz;Database=veritabanıismi;port=port genelde 3306;user=veritabanıkullanıcı;Pwd=şifre;SslMode=none;";
MySqlConnection connection = new MySqlConnection(connectiondetails);
connection.Open();
con = connection;
isconnected = true;
}
catch (MySqlException ex)
{
string exception = "Exception : " + ex.Message.ToString() + "\n\rApplication will close now. \n\r";
Environment.Exit(1);
}
Bağlantıyı da alttaki kodlarla kapatabilirsiniz.
Kod:
isconnected = false;
con.Close();
con.Dispose();
Veri yazmak ve okumak için de alttaki komut dizisini kullanabilirsiniz.
C#:
public static List<string> Helper(string sqlquery, int strintbool, int indexnum)
{
if (!isconnected)
{
Connect();
}
try
{
cmd = new MySqlCommand();
cmd.CommandText = sqlquery;
cmd.Connection = con;
string gonderilecek = null;
if (sqlquery.Contains("DELETE") || sqlquery.Contains("UPDATE") || sqlquery.Contains("INSERT"))
{
cmd.ExecuteNonQuery();
var gonderilendeger = new List<string>();
gonderilendeger[0] = "True";
return gonderilendeger;
}
else if (sqlquery.Contains("SELECT"))
{
dr = cmd.ExecuteReader();
var gonderilendeger = new List<string>();
if (strintbool == 1)
{
dr.Read();
gonderilendeger.Add(Convert.ToString(dr.GetInt32(indexnum)));
}
else if (strintbool == 2)
{
dr.Read();
gonderilendeger.Add(dr.GetString(indexnum));
}
else if (strintbool == 3)
{
gonderilendeger.Add(Convert.ToString(dr.Read()));
}
else if (strintbool == 4)
{
while (dr.Read())
{
for (int i = 0; i <= 5; i++)
{
gonderilecek += Convert.ToString(dr[i]) + "|";
}
gonderilendeger.Add(gonderilecek);
gonderilecek = null;
}
}
return gonderilendeger;
}
else
{
var gonderilendeger = new List<string>();
gonderilendeger.Add(("ErrException: " + "\n Syntax Error"));
return gonderilendeger;
}
}
catch (Exception e)
{
var gonderilendeger = new List<string>();
gonderilendeger.Add(Convert.ToString("ErrException: " + e));
return gonderilendeger;
}
finally
{
CloseConn();
}
}
Ancak dönüş list şeklinde olduğu için tekli değer istiyorsanız çağırdıktan sonra [0] gibi bir değer eklemelisiniz. Eğer liste şeklinde değer çekecekseniz foreach döngüsünü kullanabilirsiniz.
Örnek list kullanımı:
C#:
var getallmessages = new List<string>();
getallmessages = SQL.SQL.Helper("SELECT * FROM `messages` WHERE senderid=" + userid, 4, 0);
foreach (var item in getallmessages)
{
string[] message = item.Split('|');
if (type == true) {
listBox1.Items.Add(message[0] + " Gönderen: "+ getname(message[1]) + " Alıcı: Sen " + message[3] + " " + message[5]);
}
else
{
listBox1.Items.Add(message[0] + " Gönderen: Sen " + "Alıcı: " + getname(message[2]) + message[3] + " " + message[5]);
}
}
Örnek tekli veri çekim:
C#:
int latestid = Convert.ToInt32(SQL.SQL.Helper("SELECT id FROM `users` WHERE name = '" + user + "' OR email='" + user + "'", 1, 0)[0]);
this.Hide();
Form f2 = new User_Panel(latestid);
f2.ShowDialog();
Başka sorularınız varsa sorabilirsiniz. Umarım faydalı olmuştur. Okuduğunuz için teşekkürler.