private void Form1_Load(object sender, EventArgs e)
        {
            string strSQL = "select * from users";
            SqlConnection conn = SystemGlobalVar.DatabaseMethods.getConnection();
            SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
            DataSet ds = new DataSet();
            da.Fill(ds);
          CrystalReport1 cr = new CrystalReport1();
            cr.SetDataSource(ds);//这里报错该报表不包含表。怎么解决?用ds.Tables[0]也是一样
        }

解决方案 »

  1.   


    报表跟你SQL语句表是否一致???
      

  2.   


    报表跟你SQL语句表是否一致???
      

  3.   

    我这样做就是想把SQL语句给CrystalReport1.rptCrystalReport1.rpt没有指定数据库字段.
      

  4.   

    你得先建一个CrystalReport的rpt文档,设置打印的字段,(若文件名为:CrystalReport1.rpt)
    然后拖一个CrystalReportViewer1控件!
    代码:
    string strSQL = "select * from users";
    SqlConnection conn = SystemGlobalVar.DatabaseMethods.getConnection();
    SqlDataAdapter da = new SqlDataAdapter(strSQL, conn);
    DataSet ds = new DataSet();
    da.Fill(ds);ReportDocument doc = new ReportDocument();
    doc.Load(Server.MapPath("CrystalReport1.rpt"));
    doc.SetDataSource(ds.Tables[0]);
    CrystalReportViewer1.ReportSource = doc;
      

  5.   

    因为CrystalReport的rpt文档的字段需要连接数据库的.我想怎么用代码去连接..
      

  6.   

    添加了CrystalReport1之后,查询数据库,讲结果存在dataset,再加载CrystalReport1,
      

  7.   

    只要rpt文档连接一个强类型中的DataTable就可以了,
    不一定连接特定的数据库!
      

  8.   

    http://blog.csdn.net/babyt/archive/2009/07/26/4610057.aspx
      

  9.   

        水晶报表一般先创建一个数据集,生成数据集的时候就会生成sql语句,然后把sql拷贝到程序里,设置.rpt,文件,拖放reportView视图控件,然后设置.rpt的数据源,最后绑定给reportView。