全部,
我创建了一个.net对象(例如:A
),其中包含从表中收集的数据。
接下来,我创建一个List<A>()
并传递给SetDataSource()
对象的ReportDocument
方法。
当我跑的时候,抛出了一个例外:
"CrystalDecisions.CrystalReports.Engine.DataSourceException: The data source object is invalid"
我不知道上面的异常,错误信息不清楚。有人可以帮我解释一下吗?例如:.net对象必须继承自ISerializable .....
答案 0 :(得分:4)
我遇到了同样的错误,但在使用对象作为报表的数据源时遇到了错误。我有以下代码:
var myObj = new MyDataObject();
cr.Load(@"C:\report.rpt");
cr.SetDataSource(myObj);
并得到了同样的错误。
将SetDataSource行更改为:
cr.SetDataSource(new [] { myObj });
帮助,现在它正常工作。 换句话说,尝试将对象包装在数组中。如果您正在使用列表,请先尝试将其转换为数组(使用.ToArray()方法)。