2011-11-05 55 views

回答

3

您可以检查ConnectionString属性是否存在MultipleActiveResultSets属性,如果存在,请确保将其设置为true。

根据您的代码使用情况,您还可以检查SqlConnection.ServerVersion属性以检查MARS支持。主数应该大于等于9.(SQL Server 2005及更高版本)。如果您的代码在不同的SQL服务器版本上使用,这将非常有用。

SqlConnectionStringBuilder也可以用于反向(也许是一个奇怪的想法),它有一个MultipleActiveResultSets属性。

+0

好的手动解析:)任何其他的想法? – Softlion

+1

@Softion不是手动的 - 你可以使用SqlConnectionStringBuilder将它解析成键/值对 –

+1

你只需检查MultipleActiveResultSets键 –

1

如果检查连接字符串(最佳选项,IMO)没有吸引力......也许故意欺骗需要MARS的东西,例如打开两行数据读取器,读取其中一行,然后(不关闭阅读器)请求另一个基于阅读器的查询。

请注意,缓冲可能会影响到这一点,但值得一试...

相关问题