当我们同时打开两个或循环嵌套多个SqlDataReader会出现以如题的错误。
错误分析:因为调用的是SqlDataReader做数据库的数据读取,第一次SqlConnection开启没有关闭。
上网查了一下,一个SqlConnection只能执行一次事务,每用一次必须关闭,然后再开启。上面我只用了一次没有关闭,直接开启所以会报错。其实不用多次打开在开启,那样实现起来很麻烦。
解决方法:直接在连接字符串的后面加上MultipleActiveResultSets=true即可。 如有配置文件直接修改配置文件即可。
示例如下:(背景处为新增代码)
MultipleActiveResultSets=true" providerName="System.Data.SqlClient" />