如何避免IndexOutOfRangeException索引DataReader列?

时间:2010-02-09 07:40:33

标签: asp.net sql vb.net ado.net

我对'IndexOutOfRangeException'有点麻烦。我认为这是因为当代码试图从数据库中获取DateModified col时,它有时包含NULLS(用户自创建页面以来并不总是更新页面)。

这是我的代码;

s = ("select datemodified, maintainedby, email, hitcount from updates where id =   @footid")
Dim x As New SqlCommand(s, c)
x.Parameters.Add("@footid", SqlDbType.Int)
x.Parameters("@footid").Value = footid
c.Open()
Dim r As SqlDataReader = x.ExecuteReader
While r.Read
    If r.HasRows Then
        datemodified = (r("DateModified"))
        maintainedby = (r("maintainedby"))
        email = (r("email"))
        hitcount = (r("hitcount"))
    End If
End While
c.Close()

我想(在msdn之后)添加;

If r.HasRows Then 

End If 

会解决问题,但是在添加之后到目前为止我仍然得到相同的旧IndexOutOfRangeException

(ps,我已尝试将datemodified as string / datetime)

3 个答案:

答案 0 :(得分:1)

更改

datemodified = (r("DateModified")) 

datemodified = (r("datemodified")) 

工作?

答案 1 :(得分:1)

我试图通过传入空值,空集来重新创建问题。我无法在您提供的代码示例中重新创建它。您是否介意发布更多代码,甚至整个页面?是否有错误发生的行号?我想进一步深入研究。

答案 2 :(得分:1)