OleDbCommand commd = new OleDbCommand(); commd.CommandText = "select * from treeInfo where 1=1 "; oleDbConnection1.Open(); DataSet ds = new DataSet(); OleDbDataAdapter da = new OleDbDataAdapter(commd.CommandText,oleDbConnection1); da.Fill(ds); Report1 pp = new Report1(); pp.SetDataSource(ds.Tables[0]); CrystalReportViewer1.ReportSource = pp; oleDbConnection1.Close();

解决方案 »

  1.   

    string strselect="select *  from bj";
    OleDbConnection conn=new OleDbConnection (strconn);
    OleDbDataAdapter app=new OleDbDataAdapter (strselect,conn);
        Dataset1 ds1=new Dataset1();
    app.Fill(ds1,"b");
                CrystalReport1 cr=new CrystalReport1() ;
                 cr.SetDataSource(ds1.Tables["b"]);
                crystalReportViewer1.ReportSource =cr;
    //crystalReportViewer1是控件
      

  2.   

    不知道你的错误在哪里,因为不知道你是怎样设计报表的,但是我这种做法肯定是可以的:
    1、根据生成的DataSet写入硬盘xml文件(含架构的);
    2、根据xml文件再设计报表;
    3、其他就同你一样了。
      

  3.   

    cr.SetDataSource(ds1.Tables["b"]);
    最关键,可能他不知到到底刷新的是那个表
      

  4.   

    cryRepDoc.SetDataSource (tabTmp);cryRepDoc.Refresh();