MultipleActiveResultSets =真或多个连接?

我有一些C#中,我在连接( ExecuteReader )创build一个阅读器,然后对该读者的每一行,执行另一个命令(与ExecuteNonQuery )。 在这种情况下,在我的连接上使用MultipleActiveResultSets=True还是使用多个连接更好?

多个活动结果集(MARS)是专门为这种types的操作添加的,所以您不必同时打开两个连接,以便能够从SqlDataReader读取并执行额外的批处理。

MARS与SQL Server 2005及更高版本兼容。 从MSDN文档引用:

在引入多活动结果集(MARS)之前,开发人员必须使用多个连接或服务器端游标来解决某些情况。

更多信息请参阅:

MSDN Library – MARS概述

工作示例读取和更新数据:

MSDN库 – 操作数据(MARS)向下滚动到“使用MARS读取和更新数据”

这是据我所知MARS被添加的原因,所以我认为你应该使用它。

testing这个最好的方法是启动SQLServer分析器,看看服务器端发生了什么。

我的猜测是,因为你正在使用ExecuteNonQuery(),所以不会更好。 所以,事实上,你不用多个结果。