ADO.NET-1

1-)Öncelikle bağlantı cümlesini tek merkezi bir yerde tutmalısınız,bu şart değildir ancak uygulama taşımalarında kolaylık sağlar. 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ı izlemelesiniz.

<?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

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 inceleyebilirsiniz

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.

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.

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

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();

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 ekleyebilirsiniz 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…

Bu yazı .NET kategorisine gönderilmiş. Kalıcı bağlantıyı yer imlerinize ekleyin.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>