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