Merhaba Arkadaslar,
Projelerimizde katmanli mimari kullanimi, veri erisim katmani(data access layer), is katmani(business layer), sunum katmani(presentation layer), standart 3 N-Tier kullanimi isimizi çok kolaylastiriyor. Ister ado.net ister entity ister linq ile uygulama gelistiriyor olalim, projeyi katman katman ele almak çok daha faydali olacaktir.
Ben bu makalede Data Access Layer (Veri Erisim Katmani) içerisinde olmasi gereken kodlari sizlerle paylasacagim. (MySql ile)
Gerçi Data Access Layer her bir projede amaca uygun yazilir ama spesifik olarak kullanilan kodlar asagida.
(Öncelikle C# ile MySql Kullanimini bilmiyorsaniz buraya tiklayarak ilgili makalemizi okumanizi öneririm.)
DataAccessLayer adinda bir Class, Parametreler adinda bir Struct yapimiz mevcut.
public class DataAccessLayer
{
static MySqlConnection bag = new MySqlConnection();
static MySqlCommand komut = new MySqlCommand();
static MySqlDataAdapter adp = new MySqlDataAdapter();
static DataTable dt = new DataTable();
static DataRow dr;
///
/// Tanimladigim Con,Comm,DT,Dr nesnelerini CTOR'da null olarak belirttim.
///
public DataAccessLayer()
{
bag = null;
komut = null;
dt = null;
}
///
/// Açik baglanti
///
///
public static MySqlConnection conn()
{
bag = new MySqlConnection();
bag.ConnectionString = @"server=185.86.12.42; port=3306; UserID=SampleMySqlDB; Password=010203; Database=SampleMySqlDB;";
bag.Open();
return bag;
}
///
/// Data Table Olustur
///
///
///
public static DataTable GetDataTable(string statement)
{
dt = new DataTable();
adp = new MySqlDataAdapter(statement, conn());
adp.Fill(dt);
return dt;
}
///
/// Parametreli DataTable Olustur
///
///
///
///
public static DataTable GetDataTable(string statement, List p)
{
dt = new DataTable();
komut = new MySqlCommand(statement, conn());
foreach (var item in p)
{
komut.Parameters.AddWithValue(item.Name, item.Value);
}
adp = new MySqlDataAdapter(komut);
adp.Fill(dt);
return dt;
}
///
/// Scalar islemler için kullanilabilir.
///
///
public static string ScalarValue(string statement)
{
dt = new DataTable();
adp = new MySqlDataAdapter(statement, conn());
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
else
return null;
}
///
/// Parametreli Scalar islemler için kullanilabilir.
///
///
public static string ScalarValue(string statement, List p)
{
dt = new DataTable();
komut = new MySqlCommand(statement, conn());
foreach (var item in p)
{
komut.Parameters.AddWithValue(item.Name, item.Value);
}
adp = new MySqlDataAdapter(komut);
adp.Fill(dt);
if (dt.Rows.Count > 0)
{
return dt.Rows[0][0].ToString();
}
return null;
}
///
/// Parametreli execute islemi(Kayit ekleme-silme-güncelleme)
///
///
///
public static int RunAsStatement(string statement,List p)
{
komut = new MySqlCommand(statement, conn());
foreach (var item in p)
{
komut.Parameters.AddWithValue(item.Name, item.Value);
}
return komut.ExecuteNonQuery();
}
///
/// Parametresiz execute islemi(Kayit ekleme-silme-güncelleme)
///
///
///
public static int RunAsStatement(string statement)
{
komut = new MySqlCommand(statement, conn());
return komut.ExecuteNonQuery();
}
}
Yorum satirlarini ve summary'leri mümkün oldugunda doldurdum, yine de takildiginiz yer olursa yorum atabilirsiniz.
Kod'la kalin...
Yazılım Geliştirici & Yazılım Uzmanı