.NET SQLDataReader’in Nesnesi Ve En Sık Kullanılan Metodları

SQL Server üzerinde veya herhangi bir veri kaynağında duran veriler, veri sağlayıcıya bağlı connection ve command nesneleri yardımıyla, uygulama ortamına alınabilmektedir.

SqlDataReader Nesnesi

SQL Server üzerinde veya herhangi bir veri kaynağında duran veriler, veri sağlayıcıya bağlı connection ve command nesneleri yardımıyla, uygulama ortamına alınabilmektedir. Ancak veri kaynağından gelen bu veriyi uygulama tarafında kullanabilmek için, bir şekilde o veriyi bellekte tutabilecek ve uygulamada ihtiyaç olduğu anda kullanılmasını sağlayacak başka bir birleşene, nesneye ihtiyaç vardır. Bu ihtiyacı karşılayan, veri sağlayıcıya özel DataReader sınıfları bulunmaktadır. SQL Server .NET Data Provider için bu sınıf, SqlDataReader olarak kullanılmaktadır.

SqlDataReader sınfından oluşturulan değişken, SqlCommand’ın ExecuteReader() metodundan dönen SqlDataReader nesne örneğini yakalar. Bu nesne örneği, uygulamalarda yazılan SQL cümlesine bağlı olarak gelen sonuç kümesini(result set) sadece ileri yönlü(forward only) ve yalnız okunabilir(read only) formatta kullanma şansı verir. Bu durum, verinin daha hızlı bir şekilde uygulama ortamına alınmasını sağlar.

SqlDataReader kullanımında dikkat edilmesi gereken noktalar
Bir SqlDataReader, bir SqlDataConnection nesnesinin kendine bağlar ve kayıtlar üzerindeki işin sonuna gelinmeden bağlantı nesnsini serbest bırakmaz. Ayrıca bir SqlDataReader, üzerinden veri taşıdığı bağlantı nesnesini tamamen kendi kullanımına alır ve kapatılmadan önce bağlantı nesnesini servest bırakmaz. Ancak bu soruna .NET 2.0’dan itibaren, MARS(Multiple Active Result Sets) adı verilen teknoloji ile çözüm bulunmuştur. Ne var ki, bu teknolojinin kullanılabilmesi için ilgili veri tabanı sisteminin MARS’a destek veriyor olması gerekmektedir. Örneğin, MS SQL Server 2005 ve sonraki sürümlerin doğrudan MARS desteği varken; bu durum MS SQL Server 2000 ve önceki sürümleri için geçerli değildir.

SqlDataReader’in En Sık Kullanılan Metotları

Read()

SqlDataReader’in en önemli metodudur. Reader’in bir satır sonrasına konumlanmasını sağlar. Eğer bir sonraki satıra geçebilmişse, true değer döner. Eğer okunacak kayıt yoksa false değeri döner. Bu metod bir while döngüsünde etkin bir şekilde kullanılabilir. Böylece bir sonuç kimesi üzerindeki tüm satırlar tek tek dolaşılıp değerlendirilebilir.

Get()

Get ile başlayan metotlar, reader’in her Read() metodu çağrısı ile okuduğu satırdaki sütünların değerlerini ve aynı zamanda geri dönüş tiplerini dönüştürmeye gerek kalmadan almayı sağlar. Ancak bu metotları kullanarak verilere erişmek bazı durumlarda tehlikeli olabilir. Bu metodlarla, veri tabanı tarafında NULL olan değerleri okurken dikkatli olmak gerekir. Çünkü NULL değerler uygulamaya bu metotlarla alındığında ugyulama tarafında çalışma zamanı istisnaları(run time exceptions) oluşmaktadır. Bu nedenle uygulama tarafına gelen verileri hata olarak oluşmasının önüne geçmeyi sağlar.

Close()

DataReader’in close metodu, DataReader’in kullandığı bağlantı nesnesini bırakmasını sağlar. Böylece bu bağlantı nesnesini başka bir DataReader nesne örneği kullanabilir.

İçeriği puanla diğer kullanıcılara ışık tut

Murat Öner sitesinden daha fazla şey keşfedin

Okumaya devam etmek ve tüm arşive erişim kazanmak için hemen abone olun.

Okumaya devam et