【问题标题】:Why are there no data objects in data sources? (Data Source Configuration Wizard)为什么数据源中没有数据对象? (数据源配置向导)
【发布时间】:2020-09-26 12:50:03
【问题描述】:

我的应用程序基于 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

谢谢。

【问题讨论】:

  • 是否有特定原因您的 for 循环直到最后一个索引(即 int i = 0 ; i &lt; mp.predResultsGridView.Rows.Count - 1 而不是 int i = 0 ; i &lt; mp.predResultsGridView.Rows.Count 才迭代?
  • @jonathana,我的错,修好了。

标签: c# winforms datagridview rdlc objectdatasource


【解决方案1】:

我尝试的第一个解决方案并不是它的样子。我只是在搞乱配置管理器,这是不对的。答案隐藏得很好。所以它更多地与RDLC的比特有关。一般来说,真正的解决方案是在项目属性“目标平台”中设置为“任何 CPU”或“x86”,如果它设置为“x64”并检查“首选 32 位”是否被选中。 Image of "Project Properties"

【讨论】:

    猜你喜欢
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-01
    相关资源
    最近更新 更多