Bug 3739

Summary: System.Data.SqlClient.SqlDataReader.IsDBNull is a read for Mono, not to MS
Product: [Mono] Class Libraries Reporter: arjan
Component: System.DataAssignee: Bugzilla <bugzilla>
Status: NEW ---    
Severity: normal CC: mono-bugs+mono
Priority: ---    
Version: unspecified   
Target Milestone: Untriaged   
Hardware: PC   
OS: Windows   
Tags: Is this bug a regression?: ---
Last known good build:

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".