SqlDataReader ve Toplu Sorgular (Batch Queries)

SqlDataReader ile toplu sorguları nasıl okuya bileceğimizi inceleyeceğiz. Toplu sorgular aslında birbirinden noktalı virgül(;) ile ayrılmış sorgulardır. Birden çok sorguyu bu şekilde bir araya getirerek okuma işlemini tek seferde gerçekleştirmiş oluruz. SqlDataReader nesnesinin Read metodu false değerini döndürdükten sonra geçerli bir kayıt kümesi olup olmadığının kontrolünü yaparak toplu sorgularımızı çalıştırmış olacağız. Bu konuda bize yardımcı olacak metodumuz NextResult(). Bu metot geriye True,False değerini döndürür. Okuma işlemi bittiken sonra başka bir kayıt kümesi var ise True döndüren NextResult metodu yardımı ile tekrar While döngüsüne girip kayıt kümemizi okuyabiliriz. Ta ki kayıt kümesi bitene kadar.

Ben örneğimde 3 farklı sorgu çalıştırıp ekrana yazdıracağım.

[csharp]

string db = "Data Source=.;Initial Catalog=WorkDB;User ID=sa;Password=1";
SqlConnection con = new SqlConnection(db);
con.Open();
SqlCommand cmd = new SqlCommand("select UserName from tblUsers;select CategoryName from tblCategory;select SaleType from tblSales",con);
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
Console.WriteLine("<—————->");
do
{
while (dr.Read())
{
Console.WriteLine(dr[0]);
}
Console.WriteLine("<—————->");
} while (dr.NextResult());
dr.Dispose();

[/csharp]

2014-01-07 16_46_22-C__Windows_system32_cmd.exe

Görüldüğü gibi tek bir SqlDataReader ile birden çok kayıt kümesi okumuş olduk.

Faydalı olması dileğiyle..

Mesut Güneş

Selçuk Üniversitesi Bilgisayar programcılığı bölümünden mezun olduktan sonra birçok firmada Yazılım, İş zekası ve Veritabanı Uzmanı olarak çalıştım. Şuan Türkiye’nin en büyük şirketlerinden biri olan Doğan Online’da Veritabanı Yöneticisi olarak çalışıyorum.

You may also like...

Bir cevap yazın

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.