4 Mayıs 2016 Çarşamba

ADO.Net Nedir?

Merhaba arkadaşlar,
ADO.Net Nedir diye başlayalım. Ado.Net (ActiveX Data Objects.NET) microsoft’un bize sağlamış olduğu, veritabanı ile uygulamalarımızı birbirine bağlayan kütüphaneler topluluğudur.

Ado.Net ile sadece MS-Sql’e değil Access ve ORACLE’a da bağlanabilir, SQL’de yaptığınız işlemleri yapabilirsiniz.
Anlatımımı MS-Sql veritabanı ve C# üzerinden yapacağım. Öncelikle Ado.NET ile MS-Sql e bağlanmak için “System.Data.SqlClient” kütüphanesini C# kodumuza eklemeliyiz.

using System.Data.SqlClient;
Biraz SqlClient kütüphanesindeki sınıflara ve özelliklere bakacak olursak :
SqlConnection -> MS-SQL Server’a bağlanmak için kullandığımız sınıftır. Görevi komutun sağlıklı bir şekilde MS-SQL Server’a bağlanmasıdır.
ConnectionString -> SqlConnection nesnesinin server a bağlanması için yol tarifine benzer bir tarifi yapar.
İçerisinde :
-Server=localhost; -> Bağlanılacak sql server in konumunu belirttiğimiz yerdir.
-Database=Northwind; -> Bağlanacağımız veritabanını söylediğimiz yerdir.
-User=sa; -> SQL Authentication ile bağlanacağımızı ve kullanıcı adının sa olduğunu söylediğimiz yerdir.
-password=123; -> sa kullanıcısının parolasının 123 olduğunu belirttiğimiz yerdir

SqlConnection baglanti = new SqlConnection();
baglanti.ConnectionString = "Server=localhost;Database=Northwind; User=sa; password=123";
SqlCommand -> SqlCommand nesnesi sql komutunu oluşturduğumuz sınıftır. komut içinde sql de çalışacak sorguyu belirtiriz.
SqlCommand nesnesi :
- bir CommandText (Çalışacak sorgu)
- birde Çalıştırılacağı bağlantıyı ister.

SqlCommand komut = new SqlCommand();
komut.CommandText = "select * from categories";
komut.Connection = baglanti;
SqlCommand nesnesi çalıştırılmadan önce bağlantı açılmalıdır. Genellikle yapılan hatalardandır.

baglanti.Open();
Komutun çalıştırılacağı zaman 3 farklı çalıştırma yöntemi vardır.
ExecuteReader() -> Bir select sorgusunun çalıştırılacağı ve geriye bir result döneceği anlamına gelir.ExecuteReader geriye SqlDataReader nesnesi döndürür. Bu nesne gelen sonucu okumak için kullanılacak olan nesnedir.
ExecuteScalar() -> Aggregate fonksiyonları gibi geriye bir satır bir sütun döndüren sorgularda kullanılır. Komut geriye object döndürür ve dönen değer sonucun ilk satırın ilk sütunudur.
ExecuteNonQuery() -> insert update delete gibi geriye sonuç(result) döndürmeyen işlem yapan komutları göndermek için kullanılır.
SqlDataReader nesnemize Read() komutu uygulanarak satır satır okunması sağlanır. Read() komutu eğer satır bulabilmişse o satıra geçer ve geriye true sonucu döndürür. bu yüzden while ile kullanmak için çok uygundur.
Okuyucunun bulunduğu satırdaki herhangi bir kolonu almak için oku["CategoryName"] yazıldığında okuyucunun durduğu satırdan categoryname kolonu alınır.

while(oku.Read())
{
    string kategoriadi = oku["CategoryName"].ToString();
    listBox1.Items.Add(kategoriadi);
// listeye okunan kategori adı eklenir.
}
SqlDataReader görevini tamamladığında bağlantı kapatılmalıdır. Kapatılmadığı taktirde SQL server yorulacaktır. Ayrıca başka bir bağlantı açmak istediğinizde hata alırsınız.

baglanti.Close();
Farklı bir örnek :
Integrated Security=true; -> MS-Sql Server’a Windows Authentication ile bağlanacağımızı gösterir.

SqlConnection baglanti = new SqlConnection("Server=.;Database=Northwind;Integrated Security=true");
SqlCommand komut = new SqlCommand("Select * from products", baglanti);
baglanti.Open();
SqlDataReader okuyucu = komut.ExecuteReader();
while (okuyucu.Read())
{
    listBox1.Items.Add(okuyucu["Productname"]);
}
baglanti.Close();



Ado.NET ile bir örnek yapalım.

Bir Winforms projesi oluşturalım. Northwind hazır veritabanını kullanarak verileri getirelim. Dışarıdan bir kategori adı alsın ve bu kategorideki ürünlerin adlarını getirip datagridview üzerinde göstersin.



Hiç yorum yok:

Yorum Gönder

SQL Çalışma Sorularının Çözümü

 -Ürünler tablosundaki ürünlerden Rengi siyah,silver ya da multi renkte olanları fiyat bilgisine göre büyükten küçüğe getirilip gösterilecek...