How do I test to see if an index is within a range (or exists) without throwing an error?

I am pulling fields that may or may not be contained in the SqlDataReader called ReaderOrderInfo.
How can I test the datareader if it contains this index before attempting to pull it (which throws an error)?
The site is coded in VB .NET
Thanks!
If Not ReaderOrderInfo(oiNode.FieldName) Is Nothing Then
  oiNode.Value = ReaderOrderInfo(oiNode.FieldName)
End If

Open in new window

LVL 2
ManageMobilityAsked:
Who is Participating?
 
Priest04Connect With a Mentor Commented:

Dim fieldExists As Boolean = False
 
For i As Integer = 0 To ReaderOrderInfo.FieldCount - 1
    If ReaderOrderInfo.GetName(i) = oiNode.FieldName Then
        fieldExists = True
        Exit For
    End If
Next
 
If fieldExists Then
    ' code
End If

Open in new window

0
 
ManageMobilityAuthor Commented:
I had considered something similar to this method, but I've already got this function nested within two other For loops, so I was hoping to have some sort of "check this index" way to test of the index existed within the data reader, so not to add another layer of loops to the page.
0
 
Priest04Commented:
There is no other way, unless you want to catch an exception, which is no recommended.
0
Free Tool: SSL Checker

Scans your site and returns information about your SSL implementation and certificate. Helpful for debugging and validating your SSL configuration.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

 
ManageMobilityAuthor Commented:
That's what I'm afraid of. I may have to just take on the extra loop.
0
 
Priest04Commented:
and btw, what exactly do you think data provider would do if there is a method like

if (dr.Columnexist(columnname))
{
}

it ould neeed to loop through all column, right? The code would just look better, abstraction in action. :)
0
 
ManageMobilityAuthor Commented:
Good point :)
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.