我用c#+sqlserver            
 CrystalReport1 oCR = new CrystalReport1();
DataSet ds = SqlHelper.ExecuteDataset(conn.str, CommandType.Text, "select Food_Name from TS14_dish");
oCR.SetDataSource(ds.Tables[0]);//报错
this.CrystalReportViewer1.ReportSource = oCR;
程序总是说“ 该报表不包含表”,我的代码有问题吗?我看网上说“在Crystal Report中加入数据集系统就行了”,这是什么意思啊?如果不用水晶报表,用rdlc也行,那个该如何操作啊?就是在程序里面设置好dataset给它赋值?

解决方案 »

  1.   

    oCR.SetDataSource(ds)去掉.Tables[0]新建一个数据集文件 把要帮定的表 托进来然后新建一个Crystal Report 在ado.net数据集就看到了帮定的表
      

  2.   

    呵呵,C#自带的reportviewer报表控件也挺好用的
      

  3.   

      string sql = "SELECT * FROM table";  
                SqlConnection strcon = new SqlConnection("server=;database=;uid=;pwd=");  
                strcon.Open();  
                DataSet ds = new DataSet();  
                SqlDataAdapter sqlAd = new SqlDataAdapter(sql,strcon);  
                sqlAd.Fill(ds, "table");  
                crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt"); 
                crystalReport1.SetDataSource(ds.Tables["sql"]); 
                crystalReportViewer1.ReportSource = crystalReport1; 
      

  4.   

    我用SqlHelper来得到要显示的DataSet 也一样吧??
      

  5.   

    有人吗?在线等待了 救命啊 好像应该 在Crystal Report中加入数据集系统 该怎么操作啊?
      

  6.   

    crystalReport1.Load(Application.StartupPath + "CrystalReport.rpt");  
    你 预先建立一个报表啊,请调试三楼,用SqlHelper来得到要显示的DataSet 也一样
      

  7.   

    这样的方式,最好是采用 拉 的模式
    建议增加一个强类型的DataSet ,XXX.xsd然后将XXX.xsd 作为报表的数据源。
    这样做的好处是已经有了字段等,可以采用拖拽的方式来设计报表的样式。将取出来的DataSet 强制转化为 XXX.xsd然后在设置Report的数据源。
      

  8.   

    总之 必须要添加dataset数据集文件吧,只用SqlHelper来得到要显示的DataSet是不行的吧??
      

  9.   

    数据集文件建完之后 建报表文件 在报表文件中ado.net数据集中找到你建的数据集文件