Mysql 索引超出范围异常未处理,不确定原因
这会在突出显示的行上不断抛出IndexOutOfRangeException,我不知道为什么。我以前也做过类似的事情,效果很好。 如您所见,我已将times声明为未定义的数组,然后将其大小更改为适合。 在到的第一次迭代中引发异常。任何帮助都将不胜感激 下面的代码是我做过类似事情的地方,它工作得非常完美。代码还显示了什么是reader以及如何声明和使用它Mysql 索引超出范围异常未处理,不确定原因,mysql,vb.net,winforms,visual-studio,Mysql,Vb.net,Winforms,Visual Studio,这会在突出显示的行上不断抛出IndexOutOfRangeException,我不知道为什么。我以前也做过类似的事情,效果很好。 如您所见,我已将times声明为未定义的数组,然后将其大小更改为适合。 在到的第一次迭代中引发异常。任何帮助都将不胜感激 下面的代码是我做过类似事情的地方,它工作得非常完美。代码还显示了什么是reader以及如何声明和使用它 Dim times() As String For i = 0 To events.GetLength(1) ReDi
Dim times() As String
For i = 0 To events.GetLength(1)
ReDim Preserve times(i + 1)
SQLQuery("Select event_entry.Time from event, event_entry, swimmer, users where event_entry.eventID = event.EventID and event_entry.SwimmerID = swimmer.SwimmerID and users.userid = swimmer.userid and users.username = '" & CurrentUser & "' and event.stroke = '" & events(0, Math.Max(0, i - 1)) & "' and event.Distance = '" & events(1, Math.Max(0, i - 1)) & "' order by event_entry.time asc limit 1")
While reader.Read()
**times(i) = reader.GetDateTime(0).ToString**
End While
reader.Close()
Next
更新:
这似乎只是从DATETIME列检索数据时出现的问题。有人知道为什么吗?您没有在while循环中调整它的大小;一个列表(字符串)可以避免整个问题和问题。对于i=0 To events.GetLength(1)SQLQuery(“…”)While reader.Read()times.Add(reader.GetDateTime(0.ToString)End While reader.Close()接下来是您的建议,因为它仍然会出现相同的错误可能
reader.GetDateTime(0)
就是问题所在。您没有向我们展示任何有关阅读器的内容,因此无法确定。@您评论中的代码应该以暗淡时间作为新列表开始(字符串)
,也就是说,使用新的@AndrewMorton谢谢,我在中添加了它,但它仍然不起作用。我已经在上面介绍了什么是阅读器以及如何使用它。
While reader.Read
ReDim Preserve events(1, count)
events(0, count) = reader.GetString(0)
events(1, count) = reader.GetInt16(1)
count += 1
End While
Public connection As New MySqlConnection("server=*****; user id=root; password=*****; database=******; Convert Zero DateTime = True")
Public CurrentUser As String
Public command As New MySqlCommand
Public Poisition As String
Public reader As MySqlDataReader
Sub SQLQuery(ByVal stm As String)
command.CommandText = stm
reader = command.ExecuteReader
End Sub