This is a migrated thread and some comments may be shown as answers.

DataSet does not support System.Nullable<>

11 Answers 224 Views
General Discussions
This is a migrated thread and some comments may be shown as answers.
David
Top achievements
Rank 1
David asked on 09 Apr 2009, 07:18 PM
We've been using Telerik Reporting with a product that we have been developing for about a year. We have designed 5 or 6 reports for that product over the past several months using Q3 2008 SP1. These reports are bound to business objects that we have designed to work with NHibernate.

Today after upgrading to Q1 2009 we now get this error at design time on any report bound to an object with a nullable type such as:
'int?'

Our objects have had nullable types for quite some time now and we have never had any problems. We are excited about the new Table and Crosstab controls that were introduced with Q1 2009 and are looking forward to using them, but we must be able to bind to our business objects at design time and they must include nullable data types. 

11 Answers, 1 is accepted

Sort by
0
Svetoslav
Telerik team
answered on 10 Apr 2009, 01:05 PM
Hello David,

With the release of the new Table and Crosstab report items we have introduced a brand new data engine that handles the data sources in a new way. Upon your request we have performed a couple of tests and we have found a problem when binding to a data source similar to this:

int?[] array2 = new int?[] { 1, 2, null, 3 };

that is an array of nullable integers, while binding to a complex object that contains a property of a nullable type, it works just fine:

MyObject[] array1 = new MyObject[]
{
   new MyObject { Value = 1 }
   , new MyObject { Value = 2 }
   , new MyObject { Value = null }
   , new MyObject { Value = 3 }
};

where MyObject is defined like this:

class MyObject
{
    public int? Value { get; set; }
}

We would appreciate it if you can help us to identify any further issues and send some more information regarding the data source objects. Thank you in advance.

Greetings,
Svetoslav
the Telerik team

Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
David
Top achievements
Rank 1
answered on 10 Apr 2009, 01:58 PM
Using Visual Studio 2008 Professional, I created a new ASP.NET Web Application project. I then added the following class:

public class MyObject
{
    public int? Value { get; set; }
}

Next, I added a new report and chose Business Object from the list of Data Source Types and then selected the MyObject class from the list.

As soon as I click Finish I get the same error as before: "DataSet does not support System.Nullable<>"

If need be, I can send you the project.
0
David
Top achievements
Rank 1
answered on 10 Apr 2009, 02:26 PM
Another thing to note is that this error is not isolated to one machine.
0
Accepted
Svetoslav
Telerik team
answered on 10 Apr 2009, 05:26 PM
Hi David,

We confirm that there is a problem with the Data Source/Report Wizards when a business object with a nullable property is selected. We have logged this issue in our bug tracking system and will be fixed for the upcoming service pack due in a couple of weeks. Meanwhile it is better to avoid connecting such objects through the wizards and do this by hand.

We appreciate your help a lot. Please accept our apologies for the troubles caused. As a small reward I've added some Telerik points to your account.

 
Kind regards,
Svetoslav
the Telerik team

Check out Telerik Trainer , the state of the art learning tool for Telerik products.
0
Brian
Top achievements
Rank 2
answered on 21 Apr 2009, 02:56 AM
I'm also having a problem with this and need the fix ASAP.

Thanks
0
Steve
Telerik team
answered on 21 Apr 2009, 09:37 AM
Hi Brian,

The service pack would be released within a couple of weeks (by the end of the month or beginning of next month) and the fix would be part of it as mentioned in our previous post.

Please excuse us for the inconvenience once again.

Kind regards,
Steve
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Jafin
Top achievements
Rank 2
answered on 30 Apr 2009, 11:47 PM
Just started getting this error in 2009.1  in a report that used to work.

As of today upgraded to 2009.1 SP1 still getting the following error when the report renders.  Our datasource is set in codebehind. 

An error has occured while processing DetailSection '':
DataSet does not support System.Nullable<>.



If possible I'll try and organise a unit test in a ticket if I can understand what is causing the fault.

0
Chavdar
Telerik team
answered on 01 May 2009, 11:33 AM
Hi Jafin,

We have checked once again and can confirm that the issue which was originally reported as a bug is fixed for the Q1 2009 SP1 release. We have also verified the behavior at run-time and cannot reproduce any errors. Everything is working as expected, so we would really appreciate a sample project which replicates the problem. Open a support ticket, zip and attach it - once we review it, we would be able to provide more info on the matter.

Sincerely yours,
Chavdar
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Mattias
Top achievements
Rank 1
answered on 24 Jul 2009, 06:22 AM
Hi,
I am also trying to bind code behind and getting the same error.
In my business class I have two DateTime? properties and they both looks like this:
private DateTime? _invoiceDate; 
public virtual DateTime? InvoiceDate 
     get {return _invoiceDate; } 
     set { _invoiceDate = value; } 
}    

If I change them to regular DateTime everything works.
I'm testing to bind in detail itemdatabound:
private void detail_ItemDataBound(object sender, EventArgs e) 
     Telerik.Reporting.Processing.DetailSection detail = (Telerik.Reporting.Processing.DetailSection)sender; 
 
      DataRowView row = (DataRowView)detail.DataItem; 
      Telerik.Reporting.Processing.TextBox textBoxTest = (Telerik.Reporting.Processing.TextBox)detail.ChildElements.Find("textBoxTest"true)[0]; 
      textBoxTest.Value = row["OrderNumber"].ToString();  

/Mattias

0
Hrisi
Telerik team
answered on 24 Jul 2009, 02:12 PM
Hello Mattias,

You have not provided any info about the used Reporting version. Nevertheless using DataItem is obsolete from version Q1 2009 (see this KB for more info).  As a rule we postpone obsolete items removal for two quarters. Thus in the next release Q3 2009, the DataItem member will be removed.

Back on the issue you've encountered - I've created a simple project that demonstrates binding a TextBox to DataTime? field. Please review it and let us know if this can help you to resolve the issue with your report.

All the best,
Hrisi
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
0
Mattias
Top achievements
Rank 1
answered on 25 Jul 2009, 04:24 PM
Hi Hrisi,

I was using 2009 Q2 with the example code.
I'm not able to try this out for a couple of weeks but I take your word for it that it will work! :)

Thank you!

/Mattias
Tags
General Discussions
Asked by
David
Top achievements
Rank 1
Answers by
Svetoslav
Telerik team
David
Top achievements
Rank 1
Brian
Top achievements
Rank 2
Steve
Telerik team
Jafin
Top achievements
Rank 2
Chavdar
Telerik team
Mattias
Top achievements
Rank 1
Hrisi
Telerik team
Share this question
or