Koray Kırdinli

Yazılım ve İş Yaşamı Hakkında Paylaşımlar

Basit Bir Data Access Layer

Bir projemde veritabanına bağlanmak için connection stringi Ayarlar.ini isminde bir dosyadan aldığı bilgiler doğrultusunda oluşturan basit ama kullanışlı bir data access layer örneği.Şu anda bunu çoklu veritabanına bağlanacak ve genişletilebilecek bir yapıya dönüştürmeye çalışıyorum.Eğer yapabilirsem yine siteden erişebilirsiniz.

class cBaglan
{
public static string baglanti_cumlesi = “”;
public static SqlConnection conn;
private DataTable dt;

public static string sunucu_tur, client, server, uid, trusted, password, database, packet_size;
public static string dosya_yolu = “Ayarlar.ini”;

public cBaglan()
{
conn = new SqlConnection(baglanti_cumlesi);
}
public void Baglanti_Cumlesini_Oku()
{
cDOSYA c = new cDOSYA();
string exePath = AppDomain.CurrentDomain.BaseDirectory;
dosya_yolu = System.IO.Path.Combine(exePath, dosya_yolu);

sunucu_tur = c.Ini_Oku(“Baglanti”, “Tur”, dosya_yolu);
client = c.Ini_Oku(“Baglanti”, “Client”, dosya_yolu);
server = c.Ini_Oku(“Baglanti”, “Server”, dosya_yolu);
trusted = c.Ini_Oku(“Baglanti”, “Trusted”, dosya_yolu);
uid = c.Ini_Oku(“Baglanti”, “uid”, dosya_yolu);
password = c.Ini_Oku(“Baglanti”, “password”, dosya_yolu);
database = c.Ini_Oku(“Baglanti”, “database”, dosya_yolu);
packet_size = c.Ini_Oku(“Baglanti”, “packet”, dosya_yolu);
}
public string Baglanti_Cumlesi_Olustur()
{
string baglanti = “”;
StringBuilder sb = new StringBuilder(baglanti);
sb.Append(“workstation id=”);
sb.Append(client);
sb.Append(“; packet size=”);
sb.Append(packet_size);
sb.Append(“; user id=”);
sb.Append(uid);
sb.Append(“; data source=”);
sb.Append(server);
sb.Append(“; persist security info=False”);
sb.Append(“; Initial Catalog=”);
sb.Append(database);
sb.Append(“; password=”);
sb.Append(password);

return sb.ToString().Trim();
}
public void Baglanti_Ac()
{
if (conn.State == ConnectionState.Closed) conn.Open();
}
public void Baglanti_Kapat()
{
if (conn.State == ConnectionState.Open) conn.Close();
}
public object Komut_Calistir(SqlCommand cmd)
{
cmd.Connection = conn;
Baglanti_Ac();
object o = cmd.ExecuteNonQuery();
Baglanti_Kapat();
return o;
}
public double Scalar_Calistir(SqlCommand cmd)
{
double _retrn=0;
cmd.Connection = conn;
Baglanti_Ac();
object o = cmd.ExecuteScalar();
Baglanti_Kapat();
if (cCevir.IsNumeric(o.ToString())) _retrn = Convert.ToDouble(o.ToString());
return _retrn;
}
public SqlDataReader Reader_Calistir(SqlCommand cmd)
{
cmd.Connection = conn;
SqlDataReader reader;
Baglanti_Ac();
reader = cmd.ExecuteReader();
return reader;
}
public DataTable Datatable_Calistir(SqlCommand cmd,string sql)
{
cmd.Connection = conn;
cmd.CommandText = sql;
dt = new DataTable();
SqlDataAdapter adt = new SqlDataAdapter(cmd);
Baglanti_Ac();
adt.Fill(dt);
Baglanti_Kapat();
return dt;
}
public object Object_Calistir(SqlCommand cmd, string sql)
{
cmd.Connection = conn;
cmd.CommandText = sql;
dt = new DataTable();
SqlDataAdapter adt = new SqlDataAdapter(cmd);
Baglanti_Ac();
adt.Fill(dt);
Baglanti_Kapat();
if (dt.Rows.Count != 0) return dt.Rows[0][0].ToString().Trim();
return “”;
}
public Datasetler.dsRapor dsRapor_Doldur(SqlCommand cmd, string sql, string tablo)
{
cmd.Connection = conn;
cmd.CommandText = sql;
Datasetler.dsRapor ds = new NakliyeOtomasyonu.Datasetler.dsRapor();
SqlDataAdapter adt = new SqlDataAdapter(cmd);
Baglanti_Ac();
adt.Fill(ds, tablo.Trim());
Baglanti_Kapat();
return ds;
}
}

March 18, 2008 - Posted by | C# | , , ,

1 Comment »

  1. At last, after surfing https://koraykirdinli.net/2008/03/18/basit-bir-data-access-layer/ for a while, I found a
    blog from where I was able to genuinely grab useful details regarding the studies and the knowledge that I want.
    There need to be more things like this on LifeType

    Comment by Nan | April 20, 2013 | Reply


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s