logo
Welcome Guest! To enable all features please Giriş or Kayıt.

Bildirim

Icon
Error

Ayarlar
Son mesaja git Go to first unread
mehmetzekikir  
#1 Gönderildi : 21 Şubat 2015 Cumartesi 09:31:43(UTC)
mehmetzekikir

Sıralama: Administration

Gruplar: Administrators
Katılan: 6.05.2014(UTC)
Mesajlar: 670

19 Kere Teşekkür Etti.
152 Mesajına Toplam 253 Kere Teşekkür Edildi.
Bu makele için Bilgehan YILDIZ' a teşekkürler

1-)Öncelikle bağlantı cümlesini tek merkezi bir yerde tutmalısın bu window uygulamaları için app.config ,web uygulamaları için web.configdir.Bunlar temelde bir nevi xml dosyası olup genelde uygulamarda tek bir merkezden okunması gereken değerler buralara konur

Örnek app.config dosyası burada connection stringimizi aşağıdaki gibi yazıyoruz.Daha sonra veri tabanımızın yolu vs değişirse sadece burdan değişiklik yapmamız yeterli oluyor.Bunuda projene eklemek için aşağıdaki adımları izlemelesin

UserPostedImage

UserPostedImage

Kod:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <add name="TelefonRehberiConnectionString"
            connectionString="Data Source=.;Initial Catalog=TelefonRehberi;Integrated Security=True"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>



Bunuda kodda kullanmak için aşağıdaki şekilde kod yazmamız lazım

Bunu yapmadan önce projemize referansAddSystem.Configuration dll eklememiz gerekmektedir

UserPostedImage

UserPostedImage

string baglantiyolu = ConfigurationManager.ConnectionStrings["TelefonRehberiConnectionString"].ConnectionString;

2-)connection string örnekleri

Connection stringde

Data Source makina adı,ip vs olabilir,. Dersen makinandaki local sql servera bağlanır

Initial CatalogBuraya database adını yazman gerekir

User IdDatabaselere genelde güvenlik için kullanıcılar açılır.Databasede hakkı olan kullanıcı

PasswordDatabase kullanıcısına ait şifre

Data Source=ServerAd;Initial Catalog=DbAd;User Id=KullanıcıAd;Password= 1234;

Bu şekilde bir bağlantı yapılırsa Integrated Security =True diye bu o database windows authenticate yani şifre vermeden bağlanabileceğini gösterir

Data Source=.;Initial Catalog=TelefonRehberi;Integrated Security=True


Alternatif bağlantı cümleleri için aşağıdaki adresi inceleyebilirsin
http://www.connectionstrings.com/


3-)Veritabanına bağlanıp sonuçları bir küme içine almak için gereken kodlar

Sql serverla iş yapacaksan SqlConnection ,Access ile yapacaksan OleDbConnection gibi veritabanın değişirse kullancağın bu yapıları değiştirmelisin ancak mantıkları aynıdır.

Kod:


           string baglantiyolu = ConfigurationManager.ConnectionStrings["TelefonRehberiConnectionString"].ConnectionString;

            //Sql Connection bunun ile içine veritabanı yolunu vererek nereye bağlancağımızı belirtiyoruz
            SqlConnection conn = new SqlConnection(baglantiyolu);
            //Veritabanımızdan döncek kayıtları bir yere almam lazım ,datatable de verileri alabileceğim bir küme olarak düşün
            DataTable dt = new DataTable();

            //Select sorgusu atarak veritabanından istediğim alanları çekebilirim
            string sorgu = "Select KisiID,Ad,Soyad from Kisi";

            //Sqldataadapter ise kendisine verilen sorgu ve veritabanını kullanarak işlemleri gerçekliyeceğimiz sınıftır
            SqlDataAdapter adap = new SqlDataAdapter(sorgu, conn);

            //Fill metodu ile Datatable gibi dolmasını istediğimiz veri kümesinin içine datalarımızı atıyoruz
            adap.Fill(dt);

            //En sonda bu veri kümemizi grid gibi bir elemanın kaynağına atayarak gösterilmesi vs.. gibi işlemleri yapabiliriyoruz
            dataGridView1.DataSource = dt;



4-)SqlCommand ise SqlAdapter gibidir ancak daha çok stored procedure,insert,update,delete gibi işlemlerde tercih edilir.Ancak Command ile işlem yapılırken database bağlantıyı senin açıp kapaman gerekir.

Kod:

conn.Open();Veritabanı bağlantısını açar

cmd.ExecuteNonQuery();Command nesnesini çalıştırmak için kullanılır



conn.Close();Veritabanı bağlantısını kapar





sqlparameter ise sorgularının parametre almasını istersen resimdeki değerleri formdan okuyup database kaydetmek istiyorsan önce

sorgunda @ ile belirttiğin kelimeler parametredir


UserPostedImage

Daha sonra bu parametreler değer ataman gerekir

Örnek parametre listesinin 0 ıncı elemanı @Ad parametresine denk geliyor değeri formdaki name alanı
paramlist[0]=new SqlParameter("@Ad", txtName.Text);


Bütün bunları yaptıktan sonra query çalıştırmadan önce bunların hepsini aşağıdaki gibi commandına eklemen lazım

cmd.Parameters.AddRange(paramlist);

Bütün bunları yaptıktan sonra command nesneni aşağıdaki gibi çalıştırdığında işlemi yapıyor

cmd.ExecuteNonQuery();


Kod:

bool Cinsiyet;

                if(rdbBay.Checked)
                    Cinsiyet=true;
                else
                    Cinsiyet=false;

            string baglantiyolu = ConfigurationManager.ConnectionStrings["TelefonRehberiConnectionString"].ConnectionString;

            SqlConnection conn = new SqlConnection(baglantiyolu);

            string sorgukisiekle = "Insert Into Kisi(Ad,Soyad,Cinsiyet,Yas,TcKimlik) values(@Ad,@Soyad,@Cinsiyet,@Yas,@TcKimlik)";

            SqlParameter[] paramlist = new SqlParameter[5];

            paramlist[0]=new SqlParameter("@Ad", txtName.Text);
            paramlist[1] = new SqlParameter("@Soyad", txtSoyad.Text);
            paramlist[2] = new SqlParameter("@Cinsiyet", Cinsiyet);
            paramlist[3] = new SqlParameter("@Yas", nudYas.Value);
            paramlist[4] = new SqlParameter("@TcKimlik", txtTcKimlik.Text);   

            SqlCommand cmd = new SqlCommand(sorgukisiekle, conn);

            cmd.Parameters.AddRange(paramlist);

            conn.Open();

            cmd.ExecuteNonQuery();

            conn.Close();





5-)SqlParametrelerini kullanmanın farklı yöntemleri var örnek olarak yukarıda benim yaptığım bir parametre listesi oluşturmaktı ancak parametreleri şu şekilde de ekleyebilirdim

Aşağıdaki gibi parametreleri tek tek ekleyebilirsin mesela farklı algoritmalarda işine yarar

SqlParameter param=new SqlParameter("@Ad", txtName.Text);

cmd.Parameters.Add(param);

6-)Aşağıdaki şekilde hiç parametre kullanmadan da işlem yapılabilir ancak bunu kesinlikle yapma ,sql injection hatalarına vs neden olabilir.ve kod okunabilirliğini azalır

string sorgukisiekle = "Insert Into Kisi(Ad,Soyad,Cinsiyet,Yas,TcKimlik) values(@Ad="+txtName.Text+",@Soyad="+txtSoyad.Text...

Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınız

twitter.com/dbakademi
Dua ve teşekkür en büyük servetlere bedel...


Bu konudaki kullanıcılar
Guest
Forumu Atla  
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.