日期:2014-05-18  浏览次数:20386 次

求高手看看这个问题怎么解决
“/Digital_Simurod_Test(10.24)”应用程序中的服务器错误。
--------------------------------------------

ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidOperationException: ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。

源错误: 


行 77: {
行 78: OleDbCommand cmd = new OleDbCommand(sqlstr, con);
行 79: dr = cmd.ExecuteReader();
行 80: }
行 81: catch (System.Data.OleDb.OleDbException ee)
 

源文件: g:\系统仿真\Digital_Simurod_Test(10.24)\App_Code\DBOperation.cs 行: 79 

堆栈跟踪: 


[InvalidOperationException: ExecuteReader 要求已打开且可用的连接。连接的当前状态为已关闭。]
  System.Data.OleDb.OleDbConnection.CheckStateOpen(String method) +38
  System.Data.OleDb.OleDbCommand.ValidateConnection(String method) +21
  System.Data.OleDb.OleDbCommand.ValidateConnectionAndTransaction(String method) +18
  System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +56
  System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) +97
  System.Data.OleDb.OleDbCommand.ExecuteReader() +6
  DBOperation.DBOperation.GetDataReader(String sqlstr) in g:\系统仿真\Digital_Simurod_Test(10.24)\App_Code\DBOperation.cs:79
  login.Login1_Authenticate(Object sender, AuthenticateEventArgs e) in g:\系统仿真\Digital_Simurod_Test(10.24)\login.aspx.cs:62
  System.Web.UI.WebControls.Login.OnAuthenticate(AuthenticateEventArgs e) +78
  System.Web.UI.WebControls.Login.AttemptLogin() +116
  System.Web.UI.WebControls.Login.OnBubbleEvent(Object source, EventArgs e) +84
  System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
  System.Web.UI.WebControls.Button.OnCommand(CommandEventArgs e) +89
  System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +158
  System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
  System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
  System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
  System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2842

 
代码绝对没有问题,因为这些代码在以前那个机子上运行很正常,但以前那个机子是xp系统的,现在是win7,所以希望那位大神帮忙看下,这个该怎么办

------解决方案--------------------
不要返回一个需要显示关闭的对象集合,你可以将dr 的信息读取List<object>中,并返回
------解决方案--------------------
数据库连接有没有open???
------解决方案--------------------
先打开数据库连接啊。
------解决方案--------------------
错误已经很明显了,就是你在reader关闭后,又调用了reader来读取数据,这种做法本来就是不可取的

首先你要保证你网站所有打开的reader都要关闭掉,而不仅仅是这里