我用一个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中读出的栏目几十次就出错误页面呢 郁闷~~~~~~~~~请教各位高手指点阿~~~~
 

解决方案 »

  1.   

    我数了下 我点了30多次 然后出现下面的错误页面:
    指定的错误 
    说明: 执行当前 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();是标记的红颜色
      

  2.   

    有可能是连接池满了,来不及释放。加上MyCommand.Dispose()试试。
      

  3.   

    MyCommand.Dispose()也加了 还是点了个30多次就出现一样的错误页面。
      

  4.   

    我也遇到过此类问题。
    这样试试:
    第一,把数据库所在目录的属性添加“EVERYONE”对此目录有写权限
    第二,如果不行,将你的项目文件的目录设为共享。
    第三,在程序中记得使用DataReader一定记得关闭,以释放资源。
      

  5.   

    最有可能出做的在这句话 你把他修改了不用Application 试试OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
      

  6.   

    晕我按楼上的把数据库添加了everyone并给了全部权限 现在运行程序竟然主页都没出现就直接出现那个错误页面 咋回事阿~~~  设为共享也不管用
      

  7.   

    OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString()); 这句话怎么改阿~~
      

  8.   

    我估计不是OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString()); 的问题吧
    我点了几十次 也就是数据库连接关闭了几十次 可能资源占慢 然后再也无法发开 所以报错为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();
    大家帮帮我啊~~~
      

  9.   

    把OleDbConnection conn = new OleDbConnection(Application["connstr"].ToString());
    放在类的构造函数中声明;
    调用时,
    if(conn.State==ConnectionState.Closed)
    {
       conn.Open();
    }
    使用完毕后,
    if(conn.State==ConnectionState.Open)
    {
       conn.Close();
    }
      

  10.   

    dv.Dispose();
    ds.Clear();
    MyCommand.Dispose();
    conn.Close();加上
    conn.Dispose()看看!
      

  11.   

    不行啊
    点了大概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);