Bug 3739 - System.Data.SqlClient.SqlDataReader.IsDBNull is a read for Mono, not to MS
Summary: System.Data.SqlClient.SqlDataReader.IsDBNull is a read for Mono, not to MS
Status: NEW
Alias: None
Product: Class Libraries
Classification: Mono
Component: System.Data (show other bugs)
Version: unspecified
Hardware: PC Windows
: --- normal
Target Milestone: Untriaged
Assignee: Bugzilla
URL:
Depends on:
Blocks:
 
Reported: 2012-03-02 20:26 UTC by arjan
Modified: 2012-03-02 20:26 UTC (History)
1 user (show)

See Also:
Tags:
Is this bug a regression?: ---
Last known good build:


Attachments

Description arjan 2012-03-02 20:26:07 UTC
Description of Problem:

Small, but it made my application crash. I guess Mono is right about this and MS isn't, but may be Mono could be the wise party. Error is "invalid attempt tp read from column..."  (sic)

Steps to reproduce the problem:
1. Make a System.Data.SqlClient.SqlDataReader
2. Read
3. Test if field(0) is null with IsDBNull
4. Try to get the value of field(0)

like:
If DataReader.IsDBNull(i) Then
 bla
else
 msgbox (DataReader(i)) ' ordinal0 
end if

Actual Results:

Error, because you are reading the same field twice.

Expected Results:

Actually, what Mono does, but my application didn't like it. "Workaround" in VB something is something like:
 Dim obj As Object = DataReader(i)
 If TypeOf (obj) Is System.DBNull Then
  FieldValue = ""
 Else
  FieldValue = CStr(obj)
 End If

How often does this happen? 

Once until solved

Additional Information:

As the error message has a spelling error, the source is probably easy to find. "invalid attempt tp read from column".

Note You need to log in before you can comment on or make changes to this bug.