我的表中只有2条记录,但它从数据库中获取4条记录

时间:2017-05-04 01:32:33

标签: c# sql crystal-reports

我尝试使用水晶报告打印数据库中的值。

我的代码在这里。

       private void frmPrintBill_Load(object sender, EventArgs e)
          {

        try
        {
            SqlCon = objDB.DBConnection();

            Query = "Select p.billno, p.productid, p.productname, p.customerrate, p.quantity, p.amount, p.alert, s.noofitems, s.totamount from tblBill as p inner join tblBillsub as s on p.billno = s. billno  where p.billno= '101' ";

            StrPath = AppDomain.CurrentDomain.BaseDirectory + "\\Reports\\CrystalReport1.rpt";
            ReportDocument ObjRepDoc = new ReportDocument();
            SqlDa = new SqlDataAdapter(Query, SqlCon);
            DataTable dt = new DataTable();
            dt.Clear();
            SqlDa.Fill(dt);


            CrystalReport1 rep1 = new CrystalReport1();
            ObjRepDoc.Load(StrPath);
            ObjRepDoc.SetDataSource(dt);
            crystalReportViewer1.ReportSource = ObjRepDoc;
            crystalReportViewer1.Refresh();
           }

        catch (Exception ex)
        { MessageBox.Show(ex.ToString()); }

      }

在我的数据库表中,有两个记录仅适用于特定的billno。但它取得4条记录。为什么?? 请支持我..

2 个答案:

答案 0 :(得分:0)

在水晶报告中,您还可以使用:

suppress if duplicate

答案 1 :(得分:0)

由于内部联接,您获得了4条记录。它是两个表格的笛卡尔积。

我了解您希望按某些产品字段对报告进行分组,并使用组标题显示产品字段。

如果您将详细信息部分留空,您将只看到两条记录。但您可以使用详细信息部分显示帐单字段。