【问题标题】:Display data in crystal report when more than one table in DataSet数据集中有多个表时以水晶报表显示数据
【发布时间】:2013-08-28 21:13:47
【问题描述】:

我在 VS 10 中使用 Crystal Report,

我已经添加了数据集。

现在,如果 DataSet 中只有一个表,则显示数据,而如果我添加两个带链接的表,则不显示数据。

我正在从这个 DataSet(XSD) 表中获取字段。

如何解决这个问题。

提前致谢。 基伦

【问题讨论】:

    标签: c# sql crystal-reports dataset


    【解决方案1】:

    我习惯做的是;

    1. 将 2 个数据集添加到 crstal 报告中。
    2. 以下代码用于将 2 个数据集隐藏到同一个报告中。

    C#

      public partial class Default2 : System.Web.UI.Page
    {
        SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCtr1"].ConnectionString);
        SqlConnection cn1 = new SqlConnection(ConfigurationManager.ConnectionStrings["MyCtr2"].ConnectionString);
        ReportDocument rdoc = new ReportDocument();
        DataTable ds = new DataTable();
        DataTable ds1 = new DataTable();
        protected void Page_Load(object sender, EventArgs e)
        {
    
            if (!IsPostBack)
            {
    
                loadreport();
                }
    
      private void loadreport()
    {
    {              
            cn.Open();
            SqlDataAdapter da = new SqlDataAdapter("select *  from [MyTable1] where (Number LIKE '" + DropDownList1.Text + "') ", cn);
           da.Fill(ds);
           cn.Close();
    {
    {
           cn1.Open();
           SqlDataAdapter da1 = new SqlDataAdapter("select *  from [MyTable2] where (No LIKE '" + DropDownList1.Text + "') ", cn1);
                //DataTable ds1 = new DataTable();
            da1.Fill(ds1);
         cn1.Close();
    }
        rdoc.Database.Tables[0].SetDataSource(ds);
        rdoc.Database.Tables[1].SetDataSource(ds1);
    
        InvoiceReport.ReportSource = rdoc;
        InvoiceReport.DataBind();
    }
    

    【讨论】:

      【解决方案2】:

      您需要绑定您打算使用的 DataTable,而不是绑定整个 DataSet。 这个 SO 答案显示了一个很好的例子:https://stackoverflow.com/a/8341474/283895

      (从那篇文章中复制的代码)

      ReportDocument rpt = new ReportDocument();
      rpt.load();
      rpt.Database.Tables[0].SetDataSource(ds.Tables[0]); 
      this.crystalReportViewer1.ReportSource = rpt;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多