mars在asp.net 2.0,sql 2005里不是火星 ,而是多活动结果集(Multiple Active Result Sets,简称MARS)是ADO.NET 2.0的一个新特征-它允许在单个连接上执行多重的数据库查询或存储过程。这样的结果是,你能够在单个连接上得到和管理多个、仅向前引用的、只读的结果集。在MARS以前,针对每个结果集需要一个独立的连接。当然,你还必须管理这些连接并且要付出相应的内存和潜在的应用程序中的高度拥挤的瓶颈代价-特别是在数据集中的Web应用程序中。在最近帮朋友调优代码时,发现有这样一个功能,于是使用并笔记之.
首先要象下面那样打开设置,因为默认为FALSE,如下
String MarsConnectionStr=
"Data Source=TestServer;"+
"Initial Catalog=Pubs;IntegratedSecurity=SSPI;" +
"MultipleActiveResultSets=True";
SqlCommand cmd1 = new SqlCommand(Mars_Command_Str1, MarsConnectionStr);
SqlCommand cmd2 = new SqlCommand(Mars_Command_Str1, MarsConnectionStr);
SqlDataReader rdr1 = null;
SqlDataReader rdr2 = null;
try
{
con.Open();
rdr1=cmd1.ExecuteReader();
rdr2=cmd2.ExecuteReader();
}