Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  .NET Framework'in ADO.NET alt sisteminde tanımlı, Microsoft SQL Server veritabanı üzerinde SQL komutları çalıştırmak için kullanılan sınıf. Diğer database'lerin üzerinde çalışmak için OleDbCommand sınıfı kullanılır. SqlCommand özellikle Micros~1 SQL Server için geliştirilmiştir. Bu veritabanı üzerinde OleDbCommand'dan daha performanslı çalışır.

Bu sınıfı belli başlı metodları* ve özellikleriyle* tanıtmaya çalışacağım:

Metodlar :
1. ExecuteNonQuery : SqlCommand nesnesinin int tipinde sayı döndüren bu metodu insert, update ve delete gibi SQL komutları için kullanılır. Bu tür SQL'ler bir sonuç kümesi* döndürmez, tablolar üzerinde işlem yapar ve bu işlemden etkilenen kayıt sayısını döndürürler. Örneğin bir delete SQL'inin sonucu 3 olarak geliyorsa 3 satır silmişsiniz demektir. Fazladan silinen iki kayıt için ah, vah etmenin yazılım biliminde rollback tarzı bir karşılığı yoktur. Aslında olsa iyi olurmuş. myCommand.AhVah() metoduna rollback yaptırılabilirdi mesela.
2. ExecuteScalar : Bazı SQL türleri veya stored procedureler tek bir değer döndürür. Örneğin "select count(*) from ah_vah_log" sorgusu ah_vah_log tablosundaki kayıt sayısını döndürür. Bu tür tek değer döndüren sorgular için bu metod kullanılır. Yani özellikle aggregate fonksiyonlarıyla birlikte.
3. ExecuteReader : Sonuç kümesi döndüren SQL'ler* için kullanılan metoddur. Örneğin "select * from guru" sorgusu, kar ve bateristt de dahil olmak üzere bütün gurulara ait bilgileri döndürür.* Sonuç SqlDataReader tipindedir. Bununla dönen kayıtların üzrinde dolaşıp değerleri okunabilir.

Özellikler :
1. Connection : Komutun üzerinde çalıştırılacağı veritabanıyla ilgili bağlantı bilgilerini içerir. Kullanıcı adı, şifre, vb.
2. CommandType : Komutun tipini belirten bir enumerationdır. Üç seçenek var: Text (normal SQL), StoredProcedure (adı üzerinde), TableDirect (sadece tablo ismi belirterek direk tabloya bağlanmak için)
3. CommandTimeout : Saniye cinsinde komutun çalışma süresi limeti. Eğer bu süre içerisinde cevap gelmezse komut iptal edilir.
4. Transaction : Çalıştırılacak her komut eğer belirtilmezse kendi default transaction'ı içinde çalışır.  Bu özellik kullanılarak belli bir transaction'a ait olması sağlanabilir. (Ayrıca bkz. transaction, ACID)
5. Parameters : Parametreli SQL ya da stored procedure çalıştıracaksanız (ki böylesi daha güvenlidir) parametrelerinizi bu özelliği kullanarak aktarabilir, out parametreleri bununla okuyabilirsiniz.

Şimdi sevgili MSDN'den bir kod örneği alıp buraya yapıştıralım ve ne diyor anlamaya çalışalım.
public void ReadMyData(string baglantiBilgisi)
{
   string selectSorgusu = "SELECT nick, entriSayisi FROM guru";
   SqlConnection baglanti = new SqlConnection(baglantiBilgisi);
   SqlCommand sqlKomutu = new SqlCommand(selectSorgusu, baglanti);

   baglanti.Open();
   SqlDataReader okur = sqlKomutu.ExecuteReader();
   try
   {
      while (okur.Read())
      {
         Console.WriteLine(okur.GetString(0) + " : " + okur.GetInt32(1));
      }
   }
   finally
   {
      // SqlDataReader'ı kapatmayı unutmamak lazım.
      okur.Close();
      // SQLConnection'ı da.
      baglanti.Close();
   }
}

Yukarıdaki kod guru tablosundan okuduğu değerleri konsola yazar. Şunun gibi;
bateristt : 900
kar : 206
MrOK : 265

fizikci
23 Ağustos 2006 19:31
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1156 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen