繁体   English   中英

水晶报表不显示任何数据

[英]Crystal report don't display any data

我在C#应用程序中使用Crystal Report,这是我使用的代码:

private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
    switch (dataGridView1.Columns[e.ColumnIndex].Name)
    {
        case "FicheArticle":
            if (con.State != ConnectionState.Open)
            {
                con.Open();
            }

            SqlCommand ficheCmd = new SqlCommand("SELECT CodeArticle, LibArticleFr, InfomationsDetaille, StockActuel FROM Article WHERE CodeArticle = @code", con);
            ficheCmd.Parameters.AddWithValue("@code",Convert.ToInt32(dataGridView1.CurrentRow.Cells[0].Value));

            DataSet ficheDs = new DataSet();
            SqlDataAdapter dscmd = new SqlDataAdapter(ficheCmd);
            dscmd.Fill(ficheDs, "Article");

            CrystalReport7 objRpt7 = new CrystalReport7();
            objRpt7.SetDataSource(ficheDs);
            crystalReportViewer7.ReportSource = objRpt7;
            crystalReportViewer7.Refresh();
            con.Close();
            break;
    }
}

该查询是正确的,因为我之前对其进行了测试,但Crystal报表未显示任何内容。 那么错误在哪里呢?

objRpt7.SetDataSource(ficheDs);
crystalReportViewer7.ReportSource = objRpt7;

保留断点并找到数据集的值。

SqlDataAdapter dscmd = new SqlDataAdapter(ficheCmd);

还要检查存储在ficheCmd的查询,作为新查询运行,并找到查询结果。

我发现错误,报告的数据源链接到其他表,而不是

文章表,并且未在代码中设置。 所以数据源的表

在代码中必须相同。

 MySqlDataAdapter sda = new MySqlDataAdapter(@"SELECT invoive.per_ID,person.per_type,person.per_name,person.per_mobile,
                    invoive.INV_date,invoive.INV_no,invoive.INV_details,invoive.INV_Dr,invoive.INV_cr
                    FROM `invoive` INNER JOIN person ON invoive.per_ID = person.per_ID  WHERE 
                    invoive.INV_date BETWEEN '" + dateTimePicker1.Text + "' AND '" + dateTimePicker2.Text + "' AND invoive.per_ID ='" + textEdit1.Text + "' ORDER BY invoive.INV_date", con);
                    DataSet dst = new DataSet();
                    sda.Fill(dst, "invoive");
                    cryrptz1.Load(@"E:\Claasified\Company\FactoryManager\FactoryManager\CrystalReport6.rpt");
                    cryrptz1.SetDataSource(dst);crystalReportViewer1.ReportSource = cryrptz1;
                    int ii = dst.Tables[0].Rows.Count;

                    if (ii == 0)
                    {
                        // Here You can Send
                    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM