c# - 所有子 Crystal 报表绑定(bind)相同的数据

标签 c# sql-server-2008 crystal-reports

使用 Crystal Reports,我将主报告年份、论文、主题绑定(bind),并在子报告中显示与之相关的书籍年份和论文

我的问题是,在子报告中,我看到每篇论文的数据相同。我在一个数据集中使用这个数据表。

我正在使用以下代码:

string query = "Select subjectname ,subjectnamehindi,year,  Paper ,  bookID  From paper  where unistrID='" + uniid  + "' order by year,Optional,paper";
cmd = new SqlCommand(query, con);
SqlDataAdapter  da = new SqlDataAdapter(cmd);
DataSet dsp = new DataSet();

da.Fill(dsp, "Main");
if (dsp.Tables[0].Rows.Count>0)
{
    rpt.Load(Server.MapPath("Crys.rpt"));
    rpt.SetDataSource(dsp.Tables[0]);

    //Get sub report and assign datatable1 to that report 
    foreach (ReportObject repOp in rpt.ReportDefinition.ReportObjects)
    {
        if (repOp.Kind == ReportObjectKind.SubreportObject)
        {
            string SubRepName = ((SubreportObject)repOp).SubreportName;
            ReportDocument subRepDoc = rpt.Subreports[SubRepName];
            i = 0;
            c = dsp.Tables[0].Rows.Count;
            DataSet dsp1 = new DataSet();
            while (c > 0)
            {
                string bookid = dsp.Tables[0].Rows[i]["bookID"].ToString();

                query = "SELECT BookCode,  dbo.PaperBook.SalePrice, BookName, DisplayAuthorName FROM dbo.MasterTitle INNER JOIN dbo.PaperBook ON dbo.MasterTitle.BookCode = dbo.PaperBook.BookCode where bookID='" + bookid + "'";
                cmd = new SqlCommand(query, con);
                da = new SqlDataAdapter(cmd);

                da.Fill(dsp1, "Sub");
                subRepDoc.SetDataSource(dsp1.Tables[0]);
                c = c - 1;
                i = i + 1;                   
            }              
        }
    }

    CrystalReportViewer1.ReportSource = rpt;
    CrystalReportViewer1.DataBind();
    // Assign report to the crystal report viewer      
}

如何让子报表显示每篇论文的正确数据?

最佳答案

2 要尝试的事情:

1)在设置子报表数据源之前清除现有数据源:

subRepDoc.DataSourceConnections.Clear();

2) 为数据集表使用唯一名称:

da.Fill(dsp1, "UNIQUENAME");

关于c# - 所有子 Crystal 报表绑定(bind)相同的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17207814/

相关文章:

c# - 条件 DataGridView 到 DataTable 的转换

SQL Server 2008 IIF 语句似乎未启用

crystal-reports - Crystal Reports - 无法打开行集

c# - 更好地引用 DLL 或具有多项目解决方案?

c# - 在 Windows 中设置 ODBC 驱动程序的最小和最大池大小

sql - 在 sql server 2008 中将 varchar 转换为十进制

visual-studio-2010 - 在vs2010中创建 Crystal 报表时mht文件

javascript - 在aspx页面中打开 Crystal 报表时出错

c# - 如何在 C# 中将 .zip 文件视为目录?

sql-server - 将行批量插入 SQL Server 的最快方法