刚开始运行时都很正常,每个页面都可以正常显示,当在页面间多次浏览,最后浏览More.aspx 时就会发生下面的错误。
大家能否帮忙分析一下原因。我的conn 连接是没有问题的。是不是多个页面里调用了public OleDbDataReader Select(string sqltext)
这个函数,打开了多个conn 而conn 又没有关闭才会出现这样的错误啊?大家能否帮忙分析下原因,并提供一下解决办法呀?
未指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误
源错误:
行 114: OleDbConnection conn=this.OleDbConn();
行 115: OleDbCommand cmd=new OleDbCommand(sqltext,conn);
行 116: conn.Open(); //它提示错误出现在这行
行 117: return cmd.ExecuteReader();
行 118:
源文件: d:\my document\gaoxinqi\dbclass\dbconn.cs 行: 116
堆栈跟踪:
[OleDbException (0x80004005): 未指定的错误]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbConnection.InitializeProvider()
System.Data.OleDb.OleDbConnection.Open()
DbClass.DbConn.Select(String sqltext) in d:\my document\gaoxinqi\dbclass\dbconn.cs:116
LogicRule.Logics.Select(String sqltext) in D:\my document\GAOXINQI\LogicRule\Logics.cs:38
WebUI.UsersControls.ucontrol.DataDisplay() in d:\my document\gaoxinqi\webui\userscontrols\ucontrol.ascx.cs:50
WebUI.UsersControls.ucontrol.Page_Load(Object sender, EventArgs e) in d:\my document\gaoxinqi\webui\userscontrols\ucontrol.ascx.cs:31
System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Control.LoadRecursive()
System.Web.UI.Page.ProcessRequestMain()
项目包括DbClass 类库,LogicRule 类库,以及WebUI(More.aspx,Show.aspx,文件夹UerControls(ucontrol.ascx))
部分代码省略
<appSettings>
<add key= "connstr " value= "provider=microsoft.jet.oledb.4.0;data source= "> </add>
<add key= "dbpath " value= "../DataFile/gaoxinqi.mdb "> </add>
</appSettings>
DbClass(DbConn.cx)
DbConn.cx
public OleDbConnection OleDbConn() //构造数据库连接
{
string connstr=System.Configuration.ConfigurationSettings.AppSettings[ "connstr "].ToString()+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings[ "dbpath "].ToString());
return new OleDbConnection(connstr);
}
public OleDbDataReader Select(string sqltext)
{
OleDbConnection conn=this.OleDbConn();
OleDbCommand cmd=new OleDbCommand(sqltext,conn);
conn.Open();
return cmd.ExecuteReader();
}
LogicRule(logics.cx)
logics.cx
public OleDbDataReader Select(string sqltext)