HighTechTalks DotNet Forums  

Null Dates in Dataset

Dotnet Framework (ADO.net) microsoft.public.dotnet.framework.adonet


Discuss Null Dates in Dataset in the Dotnet Framework (ADO.net) forum.



Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old   
Robert E. Flaherty
 
Posts: n/a

Default Null Dates in Dataset - 10-25-2007 , 01:19 PM






Using C# 2.0 & SQL Server 2000, have a stored procedure that return 0, 1, or
more rows. At least one of the columns is a date and it may null. I have
created an XSD of the output from the stored proc. The entry for the
nullable date column is "<xs:element name="Sent_Dttm" minOccurs="0"
type="xs:dateTime" nillable="true"></xs:element>". I copied the XSD to the
C# 2.0 windows app I am developing and it nicely generates a strongly typed
dataset.

The problem is I get an error when attempting to access this column in the
dataset when the value is null:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public System.DateTime Sent_Dttm {
get {
try {
return
((System.DateTime)(this[this.tableOwizCommDoc.Sent_DttmColumn]));
}
catch (System.InvalidCastException e) {
throw new System.Data.StrongTypingException("The
value for column \'Sent_Dttm\' in table \'OwizCommDoc\' is DBNull.", e);
}
}
set {
this[this.tableOwizCommDoc.Sent_DttmColumn] = value;
}
}


Checking the properties of this field, I noticed that the "NullValue"
property has a value of "(throw exception)'




Reply With Quote
  #2  
Old   
Jim Rand
 
Posts: n/a

Default Re: Null Dates in Dataset - 10-25-2007 , 05:11 PM






This is by design. The strongly typed dataset will have a method (not
property) IsSent_DttmNull() if the underlying column can be null.

if (!IsSent_DttmNull) {access the value}

"Rachel Appel" <none (AT) example (DOT) com> wrote

Quote:
In article <F82909CD-DEBB-457A-AC69-DED1C4D72BE5 (AT) microsoft (DOT) com>,
RobertEFlaherty (AT) discussions (DOT) microsoft.com says...
Using C# 2.0 & SQL Server 2000, have a stored procedure that return 0, 1,
or
more rows. At least one of the columns is a date and it may null. I
have
created an XSD of the output from the stored proc. The entry for the
nullable date column is "<xs:element name="Sent_Dttm" minOccurs="0"
type="xs:dateTime" nillable="true"></xs:element>". I copied the XSD to
the
C# 2.0 windows app I am developing and it nicely generates a strongly
typed
dataset.

The problem is I get an error when attempting to access this column in
the
dataset when the value is null:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public System.DateTime Sent_Dttm {
get {
try {
return
((System.DateTime)(this[this.tableOwizCommDoc.Sent_DttmColumn]));
}
catch (System.InvalidCastException e) {
throw new System.Data.StrongTypingException("The
value for column \'Sent_Dttm\' in table \'OwizCommDoc\' is DBNull.", e);
}
}
set {
this[this.tableOwizCommDoc.Sent_DttmColumn] = value;
}
}


Checking the properties of this field, I noticed that the "NullValue"
property has a value of "(throw exception)'





Robert,
Try checking for System.DbNull before accessing the variable and that
should help you out.



Reply With Quote
  #3  
Old   
Robert E. Flaherty
 
Posts: n/a

Default Re: Null Dates in Dataset - 10-25-2007 , 05:35 PM



The issue is that I'm getting bounced in a section of the code automatically
generated when I add an XSD file to the project. If I start going in and
changing generated code than I am defeating the advance of the code
generation.

I was hoping that there was a way of influencing the code generation. Is
there?

"Jim Rand" wrote:

Quote:
This is by design. The strongly typed dataset will have a method (not
property) IsSent_DttmNull() if the underlying column can be null.

if (!IsSent_DttmNull) {access the value}

"Rachel Appel" <none (AT) example (DOT) com> wrote in message
news:MPG.218ac7a7b92c306989680 (AT) msnews (DOT) microsoft.com...
In article <F82909CD-DEBB-457A-AC69-DED1C4D72BE5 (AT) microsoft (DOT) com>,
RobertEFlaherty (AT) discussions (DOT) microsoft.com says...
Using C# 2.0 & SQL Server 2000, have a stored procedure that return 0, 1,
or
more rows. At least one of the columns is a date and it may null. I
have
created an XSD of the output from the stored proc. The entry for the
nullable date column is "<xs:element name="Sent_Dttm" minOccurs="0"
type="xs:dateTime" nillable="true"></xs:element>". I copied the XSD to
the
C# 2.0 windows app I am developing and it nicely generates a strongly
typed
dataset.

The problem is I get an error when attempting to access this column in
the
dataset when the value is null:
[System.Diagnostics.DebuggerNonUserCodeAttribute()]
public System.DateTime Sent_Dttm {
get {
try {
return
((System.DateTime)(this[this.tableOwizCommDoc.Sent_DttmColumn]));
}
catch (System.InvalidCastException e) {
throw new System.Data.StrongTypingException("The
value for column \'Sent_Dttm\' in table \'OwizCommDoc\' is DBNull.", e);
}
}
set {
this[this.tableOwizCommDoc.Sent_DttmColumn] = value;
}
}


Checking the properties of this field, I noticed that the "NullValue"
property has a value of "(throw exception)'





Robert,
Try checking for System.DbNull before accessing the variable and that
should help you out.




Reply With Quote
  #4  
Old   
Cor Ligthert[MVP]
 
Posts: n/a

Default Re: Null Dates in Dataset - 10-26-2007 , 08:02 AM



Robert,

If a column allows nulls, then there is in your strongly typed dataset
created a method named as IsTheFieldNameNull()

If the DataBase does not allows Nulls, then it is of course a normal error.

Cor


Reply With Quote
  #5  
Old   
Robert E. Flaherty
 
Posts: n/a

Default Re: Null Dates in Dataset - 10-26-2007 , 04:25 PM



As I pointed out earlier, the error is occurring in code generated when I
copied an XSD file to my C# 2.0 project. The line of code that I manually
generated is "ds.Load(rdr, LoadOption.OverwriteChanges, new String[] {
"OwizCommFaxDoc" });" where ds has been defined as an instance of the
strongly typed dataset.

The line from the XSD that defines the offending column is "<xs:element
name="Sent_Dttm" minOccurs="0" type="xs:dateTime"
nillable="true"></xs:element>
" minOccurs="1" type="xs:string"></xs:element>






"Cor Ligthert[MVP]" wrote:

Quote:
Robert,

If a column allows nulls, then there is in your strongly typed dataset
created a method named as IsTheFieldNameNull()

If the DataBase does not allows Nulls, then it is of course a normal error.

Cor


Reply With Quote
Reply




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.