文章内容

2017/7/28 14:02:57,作 者: 黄兵

已有打开的与此命令相关联的 DataReader,必须首先将它关闭

System.InvalidOperationException: 已有打开的与此命令相关联的 DataReader,必须首先将它关闭。 在 System.Data.SqlClient.SqlInternalConnectionTds.ValidateConnectionForExecute(SqlCommand command) 在 System.Data.SqlClient.SqlConnection.ValidateConnectionForExecute(String method, SqlCommand command) 在 System.Data.SqlClient.SqlCommand.ValidateCommand(String method, Boolean async) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) 在 System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) 在 System.Data.SqlClient.SqlCommand.ExecuteScalar() 在 _Default.TreeViewBind() 位置 c:\treeview\Default.aspx.cs:行号 40 

错误如上:

已有打开的与此命令相关联的 DataReader,必须首先将它关闭
同时打开建立两个DataReader,而采用同一个SqlConnection;

解决方法: 两个DataReader用不同的SqlConnection;

注意: DataReader依托于SqlConnection,如果SqlConnection关闭了,DataReader也就自动消亡了
        另外DataReader在使用时不能关闭SqlConnection



分享到:

发表评论

评论列表