我用一个datagrid来读access库中的数据,运行时非常好 可是当我点了俄一二十次各个栏目的页面就出错误页面了:
异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误
源错误:
行 118:
行 119: OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
行 120: conn.Open();
行 121:
行 122: OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql,conn);我读库的代码是:
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();
OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");
DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
conn.Close();
我在想可能是不适这段代码的问题啊 为什么开始是好的 非要等到点datagrid中读出的栏目几十次就出错误页面呢 郁闷~~~~~~~~~请教各位高手指点阿~~~~
异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误
源错误:
行 118:
行 119: OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
行 120: conn.Open();
行 121:
行 122: OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql,conn);我读库的代码是:
OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();
OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");
DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
conn.Close();
我在想可能是不适这段代码的问题啊 为什么开始是好的 非要等到点datagrid中读出的栏目几十次就出错误页面呢 郁闷~~~~~~~~~请教各位高手指点阿~~~~
指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误源错误:
行 118:
行 119: OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
行 120: conn.Open();
行 121:
行 122: OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
源文件: d:\appweb\renming\webcontrol\datagrid.ascx.cs 行: 120 堆栈跟踪:
[OleDbException (0x80004005): 未指定的错误]
System.Data.OleDb.OleDbConnection.ProcessResults(Int32 hr)
System.Data.OleDb.OleDbConnection.InitializeProvider()
System.Data.OleDb.OleDbConnection.Open()
Jack.DataGrid.MyConnection(String MySql) in d:\appweb\renming\webcontrol\datagrid.ascx.cs:120
Jack.DataGrid.Page_Load(Object sender, EventArgs e) in d:\appweb\renming\webcontrol\datagrid.ascx.cs:73
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.Page.ProcessRequestMain()
其中行 120: conn.Open();是标记的红颜色
这样试试:
第一,把数据库所在目录的属性添加“EVERYONE”对此目录有写权限
第二,如果不行,将你的项目文件的目录设为共享。
第三,在程序中记得使用DataReader一定记得关闭,以释放资源。
我点了几十次 也就是数据库连接关闭了几十次 可能资源占慢 然后再也无法发开 所以报错为120行的conn.Open();
可是我全部释放了阿:OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
conn.Open();
OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);
DataSet ds = new DataSet();
MyCommand.Fill(ds, "CommInfo");
DataView dv = ds.Tables["CommInfo"].DefaultView;
DataGrid1.DataSource = dv;
DataGrid1.DataBind();
dv.Dispose();
ds.Clear();
MyCommand.Dispose();
conn.Close();
大家帮帮我啊~~~
放在类的构造函数中声明;
调用时,
if(conn.State==ConnectionState.Closed)
{
conn.Open();
}
使用完毕后,
if(conn.State==ConnectionState.Open)
{
conn.Close();
}
ds.Clear();
MyCommand.Dispose();
conn.Close();加上
conn.Dispose()看看!
点了大概50多次
还是这个错误页面出来了:
指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误源错误: 行 96: OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
行 97:
行 98: conn.Open();
行 99:
行 100: OleDbDataAdapter MyCommand = new OleDbDataAdapter(MySql, conn);