It appears that behind the scenes, CrystalReports tries to create a DataSet from the data source it’s given and use that to populate the report. So I am guessing this is creating problems when nullable types are used because the DataSet / DataTable do not support nullable types so the thing crashes.
But why not add the necessary code to CrytalReports so that it knows how to deal with nullables?
Why not just add simple code that looks for the underlying nullable value? So for example, if you have a Nullable Int32 then the underlying type is Int32 and that is what the DataTable column that CystalReports is using should be created with. And when it comes to reading the value then a simple “if nullable value is null then use DBNull.Value on DataTabe”.
Maybe I am missing something but I don’t see this being that big of a deal and it would be a great addition.
Thanks.