如何在c#中的水晶报表中显示datagridview的当前数据

时间:2013-10-11 19:28:38

标签: c#-4.0 crystal-reports

我想在crystal report中显示datagridview的当前数据。为此,我拿了两个按钮,第一个按钮点击填充datagridview中的数据。我想在第二个按钮上单击水晶报告中的数据显示。我第一次使用水晶报告而不知道处理它。我尝试了很多,但不能这样做。在第二个按钮上单击我输入以下代码。

 private void button2_Click(object sender, EventArgs e)
    {
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        foreach (DataGridViewColumn col in dataGridView2.Columns)
        {
            dt.Columns.Add(col.HeaderText);
        }

        foreach (DataGridViewRow row in dataGridView2.Rows)
        {
            DataRow dRow = dt.NewRow();
            foreach (DataGridViewCell cell in row.Cells)
            {
                dRow[cell.ColumnIndex] = cell.Value;
            }
            dt.Rows.Add(dRow);
        }

        ds.Tables.Add(dt);

        crystalReportViewer1.ReportSource = ds;
    }   

我在最后一行听到以下错误。

 Object reference not set to an instance of an object.

1 个答案:

答案 0 :(得分:0)

Crystal Report Viewer仅显示实际的Crystal Report。您不能只填充数据集,然后尝试在查看器中显示它,这是数据网格的工作方式,而不是Crystal Report。您必须创建Crystal报表,将数据用作源,然后在报表中显示字段。然后,将报告文件指定为查看器的数据源。

希望有所帮助,

克里斯