PC Review


Reply
Thread Tools Rate Thread

dbnull int32 -please help

 
 
Miro
Guest
Posts: n/a
 
      5th Oct 2010
Hi,

I have been struggling with this for a long time now and I cant seem to find
a solution.
I have a typed dataset with an int32 column ( that I just added to an access
database ).

So now within the database I have dbnull's in all the old records that did
not have this int32.
So if I read my field I get an exception error.

I put this simple code infront of the code as I have been googling around:
Dim IDNullError As Boolean = False

If ShoppingCartBibCustomRow.IsFrontColorIDNull Then
IDNullError = True
Else
IDNullError = False
End If

but it always returns FALSE - never true.
In the "Immediate Window" for debugging:
? ShoppingCartBibCustomRow.IsFrontColorIDNull
False

but if I look at the value in the Locals tab...
+ FrontNameColorID {"The value for column 'FrontNameColorID' in table
'ShoppingCartBibCustom' is DBNull."} Integer


so If I actaully do this in the "Immediate window",
? ShoppingCartBibCustomRow.FrontNameColorID
ill get the exception:
A first chance exception of type 'System.InvalidCastException' occurred in
Microsoft.VisualBasic.dll
A first chance exception of type 'System.Data.StrongTypingException'
occurred in App_Code.rd6a6lcl.dll

So why does it not return that it is a null value in the first place.

Thank you,

Miro

 
Reply With Quote
 
 
 
 
Mr. Arnold
Guest
Posts: n/a
 
      5th Oct 2010
On 10/4/2010 9:56 PM, Miro wrote:
> Hi,
>
> I have been struggling with this for a long time now and I cant seem to
> find a solution.
> I have a typed dataset with an int32 column ( that I just added to an
> access database ).
>
> So now within the database I have dbnull's in all the old records that
> did not have this int32.
> So if I read my field I get an exception error.
>
> I put this simple code infront of the code as I have been googling around:
> Dim IDNullError As Boolean = False
>
> If ShoppingCartBibCustomRow.IsFrontColorIDNull Then
> IDNullError = True
> Else
> IDNullError = False
> End If
>
> but it always returns FALSE - never true.
> In the "Immediate Window" for debugging:
> ? ShoppingCartBibCustomRow.IsFrontColorIDNull
> False
>
> but if I look at the value in the Locals tab...
> + FrontNameColorID {"The value for column 'FrontNameColorID' in table
> 'ShoppingCartBibCustom' is DBNull."} Integer
>
>
> so If I actaully do this in the "Immediate window",
> ? ShoppingCartBibCustomRow.FrontNameColorID
> ill get the exception:
> A first chance exception of type 'System.InvalidCastException' occurred
> in Microsoft.VisualBasic.dll
> A first chance exception of type 'System.Data.StrongTypingException'
> occurred in App_Code.rd6a6lcl.dll
>
> So why does it not return that it is a null value in the first place.
>
> Thank you,
>
> Miro


I think you're going to need to check the object for being null.

If ShoppingCartBibCustomRow.FrontNameColorID == null.

Everything in .NET is an object. So you should check for something being
an object. It's not an object if it's null.

 
Reply With Quote
 
Miro
Guest
Posts: n/a
 
      5th Oct 2010
The problem is that you cannot.

The second you do anything with this line:
ShoppingCartBibCustomRow.FrontNameColorID
the typed dataset throws an exception.
You cannot change in the typed dataset 'not to' throw an exception.
It only allows you to set the "on Null return empty / null " on strings.

So I would like to check for null - but I cant even check as the exception
comes out.

M.

"Mr. Arnold" <(E-Mail Removed)> wrote in message
news:#(E-Mail Removed)...
> On 10/4/2010 9:56 PM, Miro wrote:
>> Hi,
>>
>> I have been struggling with this for a long time now and I cant seem to
>> find a solution.
>> I have a typed dataset with an int32 column ( that I just added to an
>> access database ).
>>
>> So now within the database I have dbnull's in all the old records that
>> did not have this int32.
>> So if I read my field I get an exception error.
>>
>> I put this simple code infront of the code as I have been googling
>> around:
>> Dim IDNullError As Boolean = False
>>
>> If ShoppingCartBibCustomRow.IsFrontColorIDNull Then
>> IDNullError = True
>> Else
>> IDNullError = False
>> End If
>>
>> but it always returns FALSE - never true.
>> In the "Immediate Window" for debugging:
>> ? ShoppingCartBibCustomRow.IsFrontColorIDNull
>> False
>>
>> but if I look at the value in the Locals tab...
>> + FrontNameColorID {"The value for column 'FrontNameColorID' in table
>> 'ShoppingCartBibCustom' is DBNull."} Integer
>>
>>
>> so If I actaully do this in the "Immediate window",
>> ? ShoppingCartBibCustomRow.FrontNameColorID
>> ill get the exception:
>> A first chance exception of type 'System.InvalidCastException' occurred
>> in Microsoft.VisualBasic.dll
>> A first chance exception of type 'System.Data.StrongTypingException'
>> occurred in App_Code.rd6a6lcl.dll
>>
>> So why does it not return that it is a null value in the first place.
>>
>> Thank you,
>>
>> Miro

>
> I think you're going to need to check the object for being null.
>
> If ShoppingCartBibCustomRow.FrontNameColorID == null.
>
> Everything in .NET is an object. So you should check for something being
> an object. It's not an object if it's null.
>

 
Reply With Quote
 
Cubaman
Guest
Posts: n/a
 
      6th Oct 2010
On Oct 5, 3:56*am, "Miro" <m...@beero.com> wrote:
> Hi,
>
> I have been struggling with this for a long time now and I cant seem to find
> a solution.
> I have a typed dataset with an int32 column ( that I just added to an access
> database ).
>
> So now within the database I have dbnull's in all the old records that did
> not have this int32.
> So if I read my field I get an exception error.
>
> I put this simple code infront of the code as I have been googling around:
> * * * * * * * * Dim IDNullError As Boolean = False
>
> * * * * * * * * If ShoppingCartBibCustomRow.IsFrontColorIDNull Then
> * * * * * * * * * * IDNullError = True
> * * * * * * * * Else
> * * * * * * * * * * IDNullError = False
> * * * * * * * * End If
>
> but it always returns FALSE - never true.
> In the "Immediate Window" for debugging:
> ? ShoppingCartBibCustomRow.IsFrontColorIDNull
> False
>
> but if I look at the value in the Locals tab...
> + * * * * * * * FrontNameColorID * * * *{"The valuefor column 'FrontNameColorID' in table
> 'ShoppingCartBibCustom' is DBNull."} * * * Integer
>
> so If I actaully do this in the "Immediate window",
> ? ShoppingCartBibCustomRow.FrontNameColorID
> ill get the exception:
> A first chance exception of type 'System.InvalidCastException' occurred in
> Microsoft.VisualBasic.dll
> A first chance exception of type 'System.Data.StrongTypingException'
> occurred in App_Code.rd6a6lcl.dll
>
> So why does it not return that it is a null value in the first place.
>
> Thank you,
>
> Miro

The DBNull type is a singleton class, which means only one DBNull
object exists. The DBNull.Value member represents the sole DBNull
object. DBNull.Value can be used to explicitly assign a nonexistent
value to a database field, although most ADO.NET data providers
automatically assign values of DBNull when a field does not have a
valid value. You can determine whether a value retrieved from a
database field is a DBNull value by passing the value of that field to
the DBNull.Value.Equals method. However, some languages and database
objects supply methods that make it easier to determine whether the
value of a database field is DBNull.Value. These include the Visual
Basic IsDBNull function, the Convert.IsDBNull method, the
DataTableReader.IsDBNull method, and the IDataRecord.IsDBNull method.

Do not confuse the notion of null in an object-oriented programming
language with a DBNull object. In an object-oriented programming
language, null means the absence of a reference to an object. DBNull
represents an uninitialized variant or nonexistent database column.

http://msdn.microsoft.com/en-us/libr...em.dbnull.aspx

Best regards
 
Reply With Quote
 
Jason Keats
Guest
Posts: n/a
 
      6th Oct 2010
Miro wrote:
>
> The second you do anything with this line:
> ShoppingCartBibCustomRow.FrontNameColorID
> the typed dataset throws an exception.
> You cannot change in the typed dataset 'not to' throw an exception.
> It only allows you to set the "on Null return empty / null " on strings.
>
> So I would like to check for null - but I cant even check as the
> exception comes out.
>


Doesn't every nullable column in a typed dataset have an
Is[ColumnName]Null() method?

Alternatively, you can annotate your XSD using the nullValue attribute...

http://ondotnet.com/pub/a/dotnet/200...notations.html
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

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

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
System.int32[*] to System.int32[] explicit cast problems northerntechie Microsoft VB .NET 1 14th Sep 2007 06:22 PM
Question regardig indexof(string, int32, int32) Jorge Rojas Microsoft Dot NET 1 15th Aug 2007 05:25 AM
NumericUpDown.Select(Int32, Int32) does not work - Bug? (.Net 2.0) Stephan Zaubzer Microsoft Dot NET Framework Forms 0 1st Jun 2007 12:43 PM
Warning 1684 CA2214 : Microsoft.Usage : 'RandomShade..ctor(Int32, Int32, Int32, Int32, Int32)' contains a call chain that results in a call to a virtual method defined by the class. Review the following call stack for unintended consequences: steve bull Microsoft C# .NET 4 7th Jul 2005 05:54 PM
Can't convert Text string to an int32 using Convert.Int32 =?Utf-8?B?Q29udmVydCBUZXh0Qm94LlRleHQgdG8gSW50MzIg Microsoft C# .NET 3 30th Apr 2004 09:16 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 01:04 AM.