DataReader 在连接执行期间打开
在使用 Visual Studio 2010/.Net 4.0 和 MySQL 项目时,开发人员遇到了异常,“已经有一个打开的 DataReader 与此连接关联,必须先将其关闭。”
当数据读取器打开时,相关代码尝试执行另一个 SQL 语句。具体来说,在 cmdInserttblProductFrance.ExecuteNonQuery(); 行引发异常。
出现此问题的原因是连接同时用于数据读取器和 ExecuteNonQuery 命令。根据 MSDN,不支持这种用法:
“请注意,当 DataReader 打开时,该连接仅由该 DataReader 使用。您无法为该连接执行任何命令,包括创建另一个 DataReader,直到原始 DataReader 已关闭。”
要解决此问题,请在尝试执行其他 SQL 语句之前关闭数据读取器。
以上是为什么 `ExecuteNonQuery()` 会抛出'已经有一个打开的 DataReader...”?的详细内容。更多信息请关注PHP中文网其他相关文章!