索引超出范围。报表查看器 C#

Index was out of range. ReportViewer C#

我是 C# 新手,正在尝试创建报告.. 我翻译了我的代码形式 vb 并按照完全相同的步骤制作报告但是我在 C# 中得到了 'Index out of range error' 但它在 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 中有效。我真的很困惑为什么它不起作用。请赐教。我很菜鸟

看起来 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);