da = new OleDbDataAdapter("SELECT b_key FROM info", cn);
OleDbCommandBuilder allocb = new OleDbCommandBuilder(da);
ds = new DataSet();
da.Fill(ds);
gvall.DataSource = ds;
gvall.DataBind();
Session["dataset"] = ds;
Session["adapter"] = da;
ds.Clear();
da.Dispose();da = (OleDbDataAdapter)Session["adapter"];
ds = (DataSet)Session["dataset"];
da.Fill(ds);
gvall.PageIndex = e.NewPageIndex;
gvall.DataSource = ds;
gvall.DataBind();

解决方案 »

  1.   

    试试   da = new OleDbDataAdapter("SELECT b_key FROM info", cn);
    中的连接 cn.open()啊?
      

  2.   

    da.Dispose();
    ---------------------
    这里已经将它销毁了,当然不能再用了。
      

  3.   

    因为我在几处地方都用到了 
    da = new OleDbDataAdapter("帮忙", cn); 
    session["adapter"] = da; 所以………… 
      

  4.   

    所以,把Dispose的那一句去掉。
      

  5.   

    没解决,这是全部代码protected void Page_Load(object sender, EventArgs e)
        {
            cn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("..\\App_Data\\info.mdb") + ";");
            if (!IsPostBack)
            {
                da = new OleDbDataAdapter("SELECT * FROM info", cn);
                OleDbCommandBuilder allocb = new OleDbCommandBuilder(da);
                ds = new DataSet();
                da.Fill(ds);            
                gvall.DataSource = ds;
                gvall.DataBind();            Session["dataset"] = ds;
                Session["adapter"] = da;
                ds.Clear();
            }
        }
        protected void gvall_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            da = (OleDbDataAdapter)Session["adapter"];
            ds = (DataSet)Session["dataset"];
            da.Fill(ds);
            gvall.PageIndex = e.NewPageIndex;
            gvall.DataSource = ds;
            gvall.DataBind();
        }
        protected void searchbtn_Click(object sender, EventArgs e)
        {
            if (ddlfs.SelectedItem.Value == "bname")
            {
                da = new OleDbDataAdapter("SELECT 帮忙 FROM info WHERE b_name LIKE ('%" + searchtxt.Text.Trim() + "%')", cn);
                ds = new DataSet();
                da.Fill(ds);
                gvall.DataSource = ds;
                gvall.DataBind();            Session["dataset"] = ds;
                Session["adapter"] = da;
                ds.Clear();
                da.Dispose();
            }
            else if (ddlfs.SelectedItem.Value == "bname1")
            {
                da = new OleDbDataAdapter("SELECT 帮忙 FROM info WHERE b_name1 LIKE ('%" + searchtxt.Text.Trim() + "%')", cn);
                ds = new DataSet();
                da.Fill(ds);
                gvall.DataSource = ds;
                gvall.DataBind();            Session["dataset"] = ds;
                Session["adapter"] = da;
                ds.Clear();
                da.Dispose();
            }
            else if (ddlfs.SelectedItem.Value == "bname2")
            {
                da = new OleDbDataAdapter("SELECT 帮忙 FROM info WHERE b_name2 LIKE ('%" + searchtxt.Text.Trim() + "%')", cn);
                ds = new DataSet();
                da.Fill(ds);
                gvall.DataSource = ds;
                gvall.DataBind();
                Session["dataset"] = ds;
                Session["adapter"] = da;
                ds.Clear();
                da.Dispose();
            }
        }
    }
      

  6.   

    你还是在其他地方Dispose了啊,都去掉。
    要Dispose,只能在会话终结的时候。
      

  7.   

    全部dispose去掉了,每次翻页都将前面得到的记录叠加进去了,原来只有两条变成四条,再翻8条,再翻16条………………