C# SQL Server Bağlantı

Selamün Aleyküm Arkadaşlar,

İlk önce SglClient isim uzayını (namespace) projemize dahil ediyoruz.

using System.Data.SqlClient;

Baglanti adında bir class tanımlayalım. Sql bağlantımızı tanımlayalım.

public class baglanti{
   private SqlConnection con;
}

Sunucu, veritabani, kullanici ve parola değişkenlerini tanımlayalım.

public class baglanti{
   private SqlConnection con;

   private string _sunucu;
   private string _veritabani;
   private string _kullanici;
   private string _parola;
}

Bu değişkenlere private (özel) olduğu için dışarıdan erişilemez. Bu değişkenlere erişmek için özellik tanımlayalım.

public class baglanti{
        private SqlConnection con;

        private string _sunucu;

        public string Sunucu
        {
            get { return _sunucu; }
            set { _sunucu = value; }
        }
        private string _veritabani;

        public string Veritabani
        {
            get { return _veritabani; }
            set { _veritabani = value; }
        }
        private string _kullanici;

        public string Kullanici
        {
            get { return _kullanici; }
            set { _kullanici = value; }
        }
        private string _parola;

        public string Parola
        {
            get { return _parola; }
            set { _parola = value; }
        }
}

Özelliklerimizi tanımladık. bu girilen verilerle bağlantımızı oluşturalım. Bunun için bir BaglantiOlustur adında bir method yazalım. ConnectionString oluşturmak için SqlConnectionStringBuilder nesnesini kullanalım.

        public void BaglantiOlustur()
        {
            SqlConnectionStringBuilder scsb = new SqlConnectionStringBuilder();
            scsb.DataSource = _sunucu;
            scsb.InitialCatalog = _veritabani;
            scsb.UserID = _kullanici;
            scsb.Password = _parola;
            con = new SqlConnection(scsb.ConnectionString);
        }

Bağlantımızı tanımladık. Bağlantımızı Açıp, kapatmak için bir method yazalım.

        public void BaglantiAc()
        {
            if (con.State == ConnectionState.Closed)
                con.Open();
        }

        public void BaglantiKapat()
        {
            if (con.State == ConnectionState.Open)
                con.Close();
        }

ConnectionState kullanabilmek için projemize System.Data eklememiz gerekir.

Şimdi Update, Insert, Delete işlemini yaptıran bir method yazalım. Bu işlemi yapmak için SqlCommand nesnesini tanımlıyoruz. Bağlantımızı veriyoruz. Bağlantımızı açıyoruz. Sorgumuzu çalıştırıyoruz ve baglantımızı kapatıyoruz.

        public void SorguCalistir(string sorgu)
        {
            SqlCommand cmd = new SqlCommand(sorgu, con);
            BaglantiAc();
            cmd.ExecuteNonQuery();
            BaglantiKapat();
        }

Şimdi verileri datatable ile geriye döndüren bir fonksiyon yazalım. datatable veya dataseti doldurabilmek için SqlDataAdapter nesnesini kullanacağız.

        public DataTable TabloGetir(string sorgu)
        {
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(sorgu, con);
            da.Fill(dt);
            return dt;
        }

Şimdi de verilerimizi satır satır okumak için bir fonksiyon yazalım. Satırları okumamız için SqlDataReader nesnesini kullanacağız.

        public SqlDataReader VeriGetir(string sorgu)
        {
            SqlDataReader dr;
            SqlCommand cmd = new SqlCommand(sorgu, con);
            dr = cmd.ExecuteReader();
            return dr;
        }

Şimdilik sınıfımızı (class) bitirelim.

Şimdi nasıl kullanacağımıza bir bakalım. İlk önce bir sınıfımızın bir görüntüsünü (instance) oluşturalım. Sonra baglantı metnimizi tanımlayalım.

baglanti bag = new baglanti();
bag.Sunucu = "Sunucu adı";
bag.Veritabani = "Veritabanı";
bag.Kullanici = "Kullanıcı adı";
bag.Parola = "Parola";
bag.BaglantiOlustur();

SorguCalistir methodunun kullanımı

bag.SorguCalistir("Insert, Update, Delete sorgusu");

DatagridView nesnesine veri aktarımı

dataGridView1.DataSource= bag.TabloGetir("Select sorgusu");

Verileri satır satır okumak

bag.BaglantiAc();
SqlDataReader dr = bag.VeriGetir("Select sorgusu");
while (dr.Read())
{
    //dr["alanadi" / index].ToString();
}
bag.BaglantiKapat();

Hayırlı günler. Sağlıcakla kalın.

Bu döküman www.ibasoglu.com’a aittir. Kaynak belirtmek suretiyle alıntı yapılabilir.