【发布时间】:2014-01-16 13:29:43
【问题描述】:
很抱歉这篇主流帖子。在对这个问题进行了长时间的挖掘之后,我还没有真正找到解决方案。许多可能引发此问题的原因。 所以我提出这个帖子来请求一些理解。
我正在操作数据库.. 将它们填充到数组中、列出、比较,然后将它们再次存储在数据库中。在所有这些过程中,我使用了许多查询,例如 ExecuteScalar 和 MysqlCommand,导致在 module.vb 中创建了很多 new mysqlcommand
我使用 vb.net 和 xampp mysql 作为数据服务器.. 我有 2 个数据库:它们相同但大小不同..
问题是:当我测试第二个数据库时(记录量较小) 我的程序运行良好,没有延迟或超时错误`
但是当我用我的第一个数据库(有 4900 条记录)更改数据源时,timeout expired 直接弹出,导致我的 vs 2005 没有响应
根据我对谷歌的研究,我发现这个错误的解释很少
vs 2005 仍然有一个错误,那就是
timeout expired。解决方案是升级 vs 版本由于尝试在同一服务器上打开同一连接而引发的错误。
此错误消息与它所说的并不完全一致。它告诉您连接已满,但实际上连接的插槽仍然可用
我使用了太多的
mysqlcommand变量,就像我在module.vb中一样,多达50 个mysqlcom 和变量!!!
我的个人意见:我不能应用第一个解决方案。如果我将它升级到 vs 2010 或更高版本,我的程序会有很多错误
对于第二种解决方案:我真的不明白那是什么意思。我认为那是因为我试图再次打开同一个连接(例如 CMD_open1.executereader),但同一个连接已经打开并且尚未关闭
在我的程序中,我已经确保每次使用 CMD.execute 阅读器或 executenonquery 或执行标量时,我都会添加 CMD name.connection.dispose(),以便在打开另一个新连接之间正确关闭连接
所以我现在的问题是
- 我所有的个人猜测都正确吗?如果不是,请告诉我正确的那些
- 基于我的问题,我个人认为原因是我使用了太多
mysqlcommand,即使我每次使用时都关闭了连接。那是对的吗?对此的正确解释是什么? - 什么是我可以应用来解决我的问题的正确解决方案?
感谢阅读。我真的很想知道这个问题的答案。
这是我的 module.vb 的 ss,其中包含许多 mysqlcommand 变量
【问题讨论】:
标签: mysql vb.net error-handling