指数超出范围。 ReportViewer C#

时间:2018-05-05 19:13:00

标签: c# reportviewer

我是c#的新手,我试图创建一个报告.. 我翻译了我的代码形式vb,并按照完全相同的步骤制作报告,但我得到的索引超出范围错误'在C#中但它在VB中工作正常..

继承我的代码

   private void frmInvoice_Load(object sender, EventArgs e)
    {

        this.reportViewer1.LocalReport.DataSources[0].Value = Globals.cart;
        this.reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
        this.reportViewer1.RefreshReport();
    }

Globals.cart是一个数据表,我确保它在加载报表之前有行。

我从具有数据表的数据集中获取报告数据

enter image description here

这个练习工作在vb ..我真的很困惑为什么它不会工作..请赐教..即时通讯

1 个答案:

答案 0 :(得分:0)

看起来reportViewer1.LocalReport.DataSources[0]不存在。

您可以使用reportViewer1.LocalReport.DataSources.Add(Globals.cart);

添加它

编辑:要以这种方式添加,Globals.cart需要是一个数据表。

edit2:in clase不是数据源

ReportDataSource reportDataSource = new ReportDataSource();
reportDataSource.Name = "DataSet1"; 
reportDataSource.Value = Globals.cart;
reportViewer1.LocalReport.DataSources.Add(reportDataSource);