你的 page_load事件中填充dataset的代码是否被包含在 
if (!Page.IsPostBack)
{
}
中?
如果是,将其移出来试试。

解决方案 »

  1.   

    to spring_ok(SpringDotNet)我的dataset填充代码是放在一个函数里,点击按钮执行的
      

  2.   

    发现问题所在了,是因为在点击分组链接时会加载页面,而dataset的数据周期只在一个页面里,可是点击链接不会再读一次dataset,数据丢失,所以会没有实例化,有谁能告诉我,这个问题该怎么解决,分不够另外开贴给!
      

  3.   

    和datagrid的分页一样,在点击连接时重新帮定数据。
      

  4.   

    你将dataset填加数据的代码写在page_load中,就可以了,每次刷新都会重新执行page_load的:)
      

  5.   

    点击按钮调用的函数如下:
    public void KfReportBind()
    {
    SqlConnection nwindConn=new SqlConnection();
    MyConn com=new MyConn();
    com.ConnectSQL(nwindConn);//前面的三行是调用连接数据库的方法       SqlDataAdapter myCommand=new SqlDataAdapter("t_zjl_fjcsfx",nwindConn);//t_zjl_fjcsfx是存储过程名,该存储过程没有参数
    myCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
    //DataSet2 ds=new DataSet2();//定义为全局变量了,故将之注释了
    myCommand.Fill(ds,"kfyybblc");
    Session["dd"]=ds;//将dataset保存到session里
    kfyybb_lc Report=new kfyybb_lc();
    Report.SetDataSource((DataSet)Session["dd"]);
             CrystalReportViewer1.ReportSource=Report; }
      

  6.   

    可是我是两个图表要有选择的显示,不能将他放在pageload里
      

  7.   

    存储过程是没错的
    回头试试在pageload里放填充代码,如果可以明天一来就结贴
    多谢各位大姐大哥顶力相帮了!!!偶今天要先回家了
      

  8.   

    try
    .aspx
    <input type="button" onclick="bb()" value="2"> 
    <input type="button" onclick="aa()" value="1">
    <input type="hidden" id="aas" runat="server">
    js
    function aa()
    {
       document.getElementById('aas').value="1";
       //alert(document.getElementById('aas').value);
       WebForm1.submit();
    }
    function bb()
    {
        document.getElementById('aas').value="2";
        WebForm1.submit();
    }
    .cs
    if(!IsPostBack)
    {
       aas.value="1";
    }
    else
    {
       if(aas.value.trim()=="1")
       {
            Bind_Report1()
       }
       if(aas.value.trim()=="2")
       {
          Bind_Report2()
       }
    }
    本来想用服务器端的button+Session,但发现再每次onclick都是先执行IsPostBack的事件,在执行onclick事件,这样如果交换点击onclick时要onclick两次才执行Bind_Report。有没兄弟有更好的办法让onclick事件先于
    IsPostBack???
      

  9.   

    这个错误还是库连接的问题,你的dataset没有正确绑定数据,才会有错误,
    给你个建议,你写个存储过程,把分组处理好,在报表中直接显示你需要的数据,会好些,因为vs.net自带的crystal report 中不能处理数据的。
      

  10.   

    try this:public void KfReportBind()
    {
    SqlConnection nwindConn=new SqlConnection();
    MyConn com=new MyConn();
    com.ConnectSQL(nwindConn);//前面的三行是调用连接数据库的方法       SqlDataAdapter myCommand=new SqlDataAdapter("t_zjl_fjcsfx",nwindConn);//t_zjl_fjcsfx是存储过程名,该存储过程没有参数
    myCommand.SelectCommand.CommandType=CommandType.StoredProcedure;
             nwindConn.Open();
    //DataSet2 ds=new DataSet2();//定义为全局变量了,故将之注释了
    myCommand.Fill(ds,"kfyybblc");
    kfyybb_lc Report=new kfyybb_lc();
    Report.SetDataSource(ds);
             CrystalReportViewer1.ReportSource=Report;
             nwindConn.Close(); }
      

  11.   

    to 楼上的jj:
       多谢你多次关照我的帖子,你的方法不适用于我,而且,在前三行里,我已经把连接打开了我已经按照jieyh(无影无形)的方法解决了问题了,多谢大家的关注!结贴了!