求教The connection is already open.错误

weseng 2007-12-07 11:52:12
请教高手

当我在IE中执行一个复杂数据库操作时(一般需要3分钟以上才能算完),关闭IE
然后再开一个新IE执行Conn.Open()连接数据库时系统报错:

应用程序中的服务器错误。
The connection is already open.
System.InvalidOperationException: The connection is already open.

MySqlCommand comm = new MySqlCommand(strSQL.ToLower(),Conn);
Conn.Open();
MySqlDataReader dr;

因为这边的应用是一个多人并行操作的Web系统,如何解决这种问题呢?
...全文
756 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
weseng 2007-12-07
  • 打赏
  • 举报
回复
现在想解决的是并发,并发的用户很多,如果一个用户执行复杂操作,其他用户就完全不能用了哦
lovvver,不再打开,那不就是其他用户无法使用了吗?
默认的连接池在普通操作过程中是可以的,但是在耗时较长的复杂操作中不太适用
weseng 2007-12-07
  • 打赏
  • 举报
回复
过几分钟以后再刷新报错的页面,就可以得到正确的信息了

或许是连接池?排队或者是数据库的并发机制需要修改???

有没有碰到过类似的情况?能否介绍一下,非常感谢!
lovvver 2007-12-07
  • 打赏
  • 举报
回复
在执行时,判断连接是否打开,如果打开,就不用再打开了。如果没打开,就执行打开。
一般在操作数据库时,都是默认使用了连接池,而不用管这些东西的了。
weseng 2007-12-07
  • 打赏
  • 举报
回复
为了通用,代码里面的数据库操作全部用采用组件方式
组件外部没有直接数据库访问的
组件里面的数据库操作都关闭了连接,有Conn.Close()语句
而且极少使用DataReader,我的这部分程序里面就没有任何DataReader对象
hmloo 2007-12-07
  • 打赏
  • 举报
回复
是不是你的DataReader 没有关闭啊,DataReader 没关闭的话它会一直占用连接的。

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧