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.
Kaydol:
Kayıt Yorumları (Atom)
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...
-
Merhaba arkadaşlar, bu makalemde Java_Home ortam değişkenini neden tanıtmalıyız bundan bahsedeceğim. Öncelikle Java Projelerinin çalışa...
-
Merhabalar arkadaşlar, bu makalemizde Java programlama dili kullanarak eclipse geliştirme ortamında oluşturduğumuz projeyi başka bir bilgisa...
-
Algoritma, bilindiği üzere problem çözümünde kullanılan sıralı basamaklardır. Aşağıda bazı algoritma örnekleri yer almaktadır. Yı...
Hiç yorum yok:
Yorum Gönder