​MARS (Multiple Active Result Sets)

28 Nisan 2015 1 dk okuma süresi 290 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.
Dotnet Core ile gelen requestin ajax olup olmadığını anlamamıza yarayan attribute

Webapi "Get exception Method not found: 'System.Collections.ObjectModel.Collection`1 System.Web.Http.HttpConfiguration.get_MessageHandlers()'" sorunu nasıl giderilir?

Önceki sürümlerde projeye çift tıkladığımızda ağaç yapısı şeklinde kırılımları açarken VS2019 ile birlikte otomatik olarak proje dosyasını açıyor. Neyseki bu alışkanlığı devam ettirebilmek için seçenek koymuşlar.