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的状态,看是否发生改变。
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询