.net 如何检测火星在当前连接上是否处于活动状态?
我想检测MARS(多个活动结果集)在当前连接上是否处于活动状态,以便检查需要MARS支持的函数中是否存在错误配置.net 如何检测火星在当前连接上是否处于活动状态?,.net,sql-server,tsql,.net,Sql Server,Tsql,我想检测MARS(多个活动结果集)在当前连接上是否处于活动状态,以便检查需要MARS支持的函数中是否存在错误配置 使用TSQL命令或.NET SQL Server本机客户端api方法。您可以检查connections ConnectionString属性是否存在MultipleActiveResultSets属性,如果存在,请确保将其设置为true 根据您的代码使用情况,您还可以检查SqlConnection.ServerVersion属性以检查MARS支持。主数字应大于等于9。(SQL Ser
使用TSQL命令或.NET SQL Server本机客户端api方法。您可以检查connections ConnectionString属性是否存在MultipleActiveResultSets属性,如果存在,请确保将其设置为true 根据您的代码使用情况,您还可以检查SqlConnection.ServerVersion属性以检查MARS支持。主数字应大于等于9。(SQL Server 2005及更高版本)。如果您的代码用于不同的SQL server版本,这将非常有用
SqlConnectionStringBuilder也可以反向使用(可能是一个奇怪的想法),它有一个MultipleActiveResultSets属性。您可以检查connections ConnectionString属性是否存在MultipleActiveResultSets属性,如果存在,请确保它设置为true 根据您的代码使用情况,您还可以检查SqlConnection.ServerVersion属性以检查MARS支持。主数字应大于等于9。(SQL Server 2005及更高版本)。如果您的代码用于不同的SQL server版本,这将非常有用
SqlConnectionStringBuilder也可以反向使用(可能是一个奇怪的想法),它有一个MultipleActiveResultSets属性。如果检查连接字符串(最好的选项,IMO)没有吸引力。。。可能是故意欺骗需要MARS的东西,例如打开两行数据读取器,读取其中一行,然后(在不关闭读取器的情况下)请求另一个基于读取器的查询
请注意,缓冲可能会影响这一点,但值得一试…如果检查连接字符串(最好的选项,IMO)没有吸引力。。。可能是故意欺骗需要MARS的东西,例如打开两行数据读取器,读取其中一行,然后(在不关闭读取器的情况下)请求另一个基于读取器的查询
请注意,缓冲可能会影响这一点,但值得一试…@Softion非手动-您可以使用SqlConnectionStringBuilder将其解析为键/值对您只需检查MultipleActiveResultSets键ok:)我正在使用企业库。但这可能是解决办法。最好是在提供程序的某个地方有一个布尔属性。@Softion非手动-您可以使用SqlConnectionStringBuilder,它将把它解析为键/值对。您只需检查MultipleActiveResultSets键ok:)我正在使用企业库。但这可能是解决办法。最好是在提供者的某个地方有一个布尔属性。