为什么数据源中没有数据对象? (数据源配置向导)

问题描述 投票:0回答:1

我的应用程序基于Windows窗体。我正在使用RDLC(版本15.3.1)创建报告。该报告应具有一个表,该表充满了我从DataGridView中获取的数据。

将数据从DataGridView传输到报表的过程如下。

List<OriginalPredicted> op = new List<OriginalPredicted>();
                            op.Clear();
                            for (int i = 0 ; i < mp.predResultsGridView.Rows.Count; i++)
                            {
                                op.Add(new OriginalPredicted { Original = (double)mp.predResultsGridView.Rows[i].Cells[0].Value, Predicted = (double)mp.predResultsGridView.Rows[i].Cells[1].Value });
                            }
                            ReportDataSource rds = new ReportDataSource("Dataset_Orig_Pred", op);
                            reportViewer.LocalReport.DataSources.Clear();
                            reportViewer.LocalReport.DataSources.Add(rds);
                            reportViewer.LocalReport.Refresh();

在此之前,我创建了一个由类实例组成的列表。该类的实现如下:

    public class OriginalPredicted
    {
        public double Original { get; set; }
        public double Predicted { get; set; }
    }

问题是当我要添加数据集并选择一个对象作为数据源时,在“选择数据对象”窗口中找不到要使用的任何类(业务对象)。在项目树下只有“属性”项,但我希望也能看到我创建的类。 Image of "Select the data objects" window

我尝试了什么:

  1. 将编译选项更改为x86。我猜想RDLC在x86环境中可以很好地工作,因此x64依赖项存在问题。 它没有用。此处提供解决方案:Class (Business Object) not appearing in Report Data toolbox for RDLC
  2. 重建项目解决方案。 没有任何改变。
  3. 重新启动Visual Studio。 仍然没有运气。

严格地针对x64体系结构的项目中依赖项的存在会影响数据源配置向导的行为吗?

我的项目使用版本控制系统。还会产生影响吗?

而且,我试图在干净的项目上重现该问题。在这种情况下,一切正常。不幸的是,我无法在其他地方重做该项目,因为这非常耗时。 Image of "Select the Data Objects" window after reproducing issue

谢谢。

c# winforms datagridview rdlc objectdatasource
1个回答
0
投票

我尝试过的第一个解决方案不是它的外观。我只是在搞弄Configuration Manager,这是不对的。答案隐藏得很好。因此,它与RDLC的位更相关。通常,真正的解决方案是在项目属性“目标平台”中将其设置为“ x64”,然后将其设置为“任何CPU”或“ x86”,然后检查是否选中了“首选32位”。 Image of "Project Properties"

© www.soinside.com 2019 - 2024. All rights reserved.