C#在在与数据库实现查询时,总是报错!(ExecuteReader 要求已打开且可用的 Connection)
如图,结果老是报错,百度了很久也没能解决我把图中红色箭头上方的rd.close();去掉也不行...
如图,结果老是报错,百度了很久也没能解决
我把图中红色箭头上方的rd.close();去掉也不行 展开
我把图中红色箭头上方的rd.close();去掉也不行 展开
2个回答
展开全部
你这代码读起来好费力啊、循环嵌套条件判断也太多了吧。大致分析原因可能如下:错误提示是connection被断开了,所以应该把conn.close()去掉在最后面执行。程序本来就应该在所有任务都完成了再关闭连接,你在中途关闭它干吗。
关键在于你要知道这里面有一个循环语句foreach,你在前面的循环把连接关掉,那下一次循环时自然会报错呀。不信你可以试试,在foreach第一次循环时肯定不会报错,报错是在后面的循环中。
关键在于你要知道这里面有一个循环语句foreach,你在前面的循环把连接关掉,那下一次循环时自然会报错呀。不信你可以试试,在foreach第一次循环时肯定不会报错,报错是在后面的循环中。
更多追问追答
追问
谢谢,搞定了,高手
追答
rd.close和rd.dispose这些都不要,conn.close 和conn.dispose放函数最后。
那你在第一次执行cmd.ExecuteReader();时有报错吗?
另外你可以在调试时设置断点等方法跟踪查看conn的状态,看是否发生改变。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询