Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 索引超出范围异常未处理,不确定原因_Mysql_Vb.net_Winforms_Visual Studio - Fatal编程技术网

Mysql 索引超出范围异常未处理,不确定原因

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

这会在突出显示的行上不断抛出IndexOutOfRangeException,我不知道为什么。我以前也做过类似的事情,效果很好。 如您所见,我已将times声明为未定义的数组,然后将其大小更改为适合。 在到的第一次迭代中引发异常。任何帮助都将不胜感激

下面的代码是我做过类似事情的地方,它工作得非常完美。代码还显示了什么是reader以及如何声明和使用它

 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