c# - 如何将数据从网格视图传递到报表查看器?

时间:2013-11-12 12:44:08

标签: c# gridview datagridview reportviewer

工作人员进行了一些研究,但仍然无法理解该怎么做,我对C#知之甚少。

我有一个网格视图,我在其中添加了几个项目,现在我需要将这些项目移动到报告查看报告。

我不知道怎么做,最好将所有数据网格传递给外衣或者拿出每个输出的项目ID,因为它们是不同的值(例如,对应于各种输出的项目)和进行查询并将数据带到报告中......最可行的是什么?

2 个答案:

答案 0 :(得分:1)

假设您没有提供进一步的信息,那么您处于本地处理模式。

ReportDataSource 是您本地模式向ReportViewer控件提供数据的方式。 http://msdn.microsoft.com/en-us/library/ms251736(v=vs.90).aspx

现在转到MSDN上的GridView页面后, 我发现 GridView.DataSourceObject实现了IDataSource 。 (这是用于创建ReportDataSource的参数选项。)

意味着你应该能够创建一个ReportDataSource 来提供你的ReportViewer控件,只需从你的GridView 创建ReportDataSource(Rds)

ReportDataSource Rds = new ReportDataSource("DataSetName", GridView.DataSourceObject);

答案 1 :(得分:1)

您可以使用以下代码在带有gridview数据的报表查看器中查看数据。

        int id =Convert.ToInt32(txtID.Text);
        ReportViewer1.ProcessingMode = ProcessingMode.Local;
        ReportViewer1.LocalReport.ReportPath = Server.MapPath("~/Report1.rdlc");

        DataTable dt = GridView1.DataSourceObject;
        if (dt.Rows.Count > 0)
        {
            ReportDataSource rds = new ReportDataSource("DatasetName", dt);
            ReportViewer1.LocalReport.DataSources.Clear();
            ReportViewer1.LocalReport.DataSources.Add(rds);
        }

Reference code