​MARS (Multiple Active Result Sets)

28 Nisan 2015 1 dk okuma süresi 259 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.
VS2015'in 3. update'ini yaptıktan sonra asp.net core web uygulaması yaratmak istediğimde şu şekilde bir hata ile karşılaştım. "Exception : The system cannot find the file specified. (Exception from HRESULT: 0x80070002)". Çözümü oldukça basit.

Entity framework code first kullanıyorsanız ve inheritance yapıp yeni bir class yarattığınızda bunun gibi bir hata alırsınız. Bunun nedeni fluent api'nin inheritance yapılan class ile ana class'ın map yapmaya çalışması ve ilgili kolonu veritabanında bulamamasıdır. Çözümü ise inherit olmuş class'a [NotMapped] DataAnnotations attribute'unu eklemek.

Asp.Net Mvc ile recursive nasıl yazılır, @helper veya HtmlHelper kullanarak recursive fonksiyon yazmak, Asp.Net MVC View recursive fonksiyon nasıl yazılır?