​MARS (Multiple Active Result Sets)

28 Nisan 2015 1 dk okuma süresi 270 okunma

MARS, ADO.Net 2.0 ile birlikte gelen tek sql connection ile birden fazla query çalıştırmaya izin veren özelliktir. Şöyleki; ADO.Net 2.0 öncesinde CRUD işlemleri yapılırken connection açar ve DataReader ile işlemler yapar, sonrasında connection kapatır ve başka bir CRUD işlem olacaksa yine bir connection açar ve işlem bitince kapatırdık ve bu böyle sonsuz döngü şeklinde giderdi. Aynı anda birden fazla DataReader kullanmak mümkün değildi. MARS buna çözüm getirdi ve aynı bağlantı üzerinde birden fazla DataReader ile veri okunmasına olanak sağladı.

Mars, Sql Server 2005 ve sonrası için geçerli bir özelliktir.

ConnectionString'e eğer özellik tanımlanmadıysa default olarak false kabul edilir. Bu nedenle örneğin aynı sayfayı farklı tab'larda açmayı denerseniz MultipleActiveResultSets hatası ile karşılaşırsınız.

Server=localhost;Database=adventureworks;Uid=sa;Pwd=sa;MultipleActiveResultSets=true;


Basit bir kod örneği

private void MARS_Example()
{
    var conn = new SqlConnection("Server=localhost;Database=adventureworks;Trusted_Connection=yes;MultipleActiveResultSets=true;");
    
    string sql1 = "SELECT * FROM [Person].[Address]";
    string sql2 = "SELECT * FROM [Production].[TransactionHistory]";

    SqlCommand cmd1 = new SqlCommand(sql1, conn);
    SqlCommand cmd2 = new SqlCommand(sql2, conn);

    conn.Open();
    SqlDataReader dr1 = cmd1.ExecuteReader();
    SqlDataReader dr2 = cmd2.ExecuteReader();
    conn.Close(); 
}


Yazılarıma abone olmak ister misiniz?
Spam yapılmaz, sadece bildirim amaçlıdır. İstediğiniz zaman abonelikten çıkabilirsiniz.
İlginizi çekebilecek diğer yazılar.
Form post ile giden tüm dataları loglama

Asp.net Core ile farklı bir class library'den appsettings json dosyasını kolayca okumak

Hatalı bundle kullanımından dolayı alınan MIME type hatası ve çözümü