<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Visible=true
            Height="1039px"  Width="901px" />          ReportDocument rep1 = new ReportDocument();//定义ReportDocument类对象
        string RptDir="E:\\杂七杂八\\CrystalReport.rpt";
        rep1.Load(RptDir);
        //rep1.Load(Server.MapPath(RptDir));//加载报表
        SqlConnection con = new SqlConnection("....");
        con.Open();
        string strSql = "select * from p";
       SqlDataAdapter da = new SqlDataAdapter(strSql,con);
       DataSet ds = new DataSet();
       da.Fill(ds, "p");
       con.Close();
       rep1.SetDataSource(ds.Tables["View_SYSIMENU"]);//加载数据源
       this.CrystalReportViewer1.ReportSource = rep1;//为CrystalReportViewer控件指定报表
       this.CrystalReportViewer1.DataBind();
并且加了CrystalReport.rpt 结果运行的时候程序还是出不了数据啊       

解决方案 »

  1.   

    1、SQL跟踪一下,看有结果没
    2、你的报表CrystalReport.rpt 是如何设计的,设计时应该有强类型的DataSet来填充你的报表列
      

  2.   

     我写错了rep1.SetDataSource(ds.Tables["s"]);//加载数据源 SQL跟踪是有结果的,
    CrystalReport.rpt 只是设定了数据源,并没有设计具体的列要显示哪些字段,我在后台设置了查询数据的话,它应该默认可以显示所有的列啊
      

  3.   

    CrystalReport.rpt 只是设定了数据源,并没有设计具体的列要显示哪些字段,我在后台设置了查询数据的话,它应该默认可以显示所有的列啊
    ---------------------------
    你没有设计报表,要他怎么显示出来啊。
    当然你要把需要显示的列拉到报表里,进行设计后才可以嘛。
      

  4.   

    前台是
    <body>
        <form id="form1" runat="server">
        <div>
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True"
                Height="1106px"  Width="876px" ReportSourceID="CrystalReportSource1" />
            <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
                <Report FileName="CrystalReport.rpt">
                </Report>
            </CR:CrystalReportSource>
        </div>
        </form>
    </body>
    可是还是显示不了数据
      

  5.   

    报表设计时应该有强类型的DataSet中表对象的列字段拖到你的报表上
      

  6.   


    ReportDocument rDoc = new ReportDocument();
    rDoc.Load(path);
    rDoc.SetDataSource(dt);
    crViewer.ReportSource = rDoc;