Use .net object as data source in Crystal Report 2

2019-02-27 06:08发布

HI all,

I created a .net object (ex: A) which contain data have been collected from tables. Next, i create a List<A>() and pass to SetDataSource() method of ReportDocument object. When i run then an Exception have been throwed :

"CrystalDecisions.CrystalReports.Engine.DataSourceException: The data source object is invalid"

I don't know the Exception above, Error message isn't clear. Can anybody explain for me? ex: the .net object must inherit from ISerializable.....

1条回答
Root(大扎)
2楼-- · 2019-02-27 06:44

I had this same error, but encountered it when using an object as the data source for the report. I had the following code:

var myObj = new MyDataObject();
cr.Load(@"C:\report.rpt");
cr.SetDataSource(myObj);

and got the same error.

Changing the SetDataSource line to this:

cr.SetDataSource(new [] { myObj });

helped and it is now working correctly. In other words, try wrapping your object in an array. If you're using a list, try converting it to an array first (use the .ToArray() method).

查看更多
登录 后发表回答