MARS (Multiple Active Result Sets)

Cuando habeís trabajado con aplicaciones que incluyen el acceso ó manipulación de datos (ADO.NET), habrás tenido en más de una oportunidad la necesidad de tener dos o más consultas ejecutadas dentro de una misma conexión, tal vez dentro de un mismo objeto DataReader, con ADO.NET 1.X esto no era posible, pero con la llegada del .NET Framework 2.0 esto ya es accesible, y es gracias a MARS (Multiple Active Result Sets), MARS nos permite utilizar multiples ejecuciones dentro de una misma conexión.
Lo unico que tenemos que hacer es añadir a nuestra cadena de conexión la propiedad MultipleActiveResultSets, y a esta asignarle un valor true de tipo lógico o booleano, ya que por defecto esta en false, aclaro que esto es valido para la version de SQL 2005 y posteriores, veamos un ejemplo para tener más clara la idea.

Supongamos que tenemos la siguiente cadena de conexión:

string cadena = “Server=. ; Initial Catalog=NorthWind ; Integrated Security=true”;
Quedaria asi
string cadena = “Server=. ; Initial Catalog=NorthWind ; Integrated Security=true; MultipleActiveResultSets=true”;

Con esto ya evitaremos errores como: "Ya hay un datareader abierto asociado a este comando debe cerrarlo primero"

Link :http://jquispe.wordpress.com/2009/05/01/multipleactiveresultsets/

Saludos
Adalberto Montanía

Comentarios