Try
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
conn.Open()
dbQuery = "select * from main_table"
myCommand.CommandText = dbQuery
myCommand.Connection = conn
Dim myReader As MySqlDataReader
myReader = myCommand.ExecuteReader()
While myReader.Read()
row_count = row_count + 1
End While
Catch ex As MySql.Data.MySqlClient.MySqlException
MessageBox.Show(ex.Message)
Finally
conn.Close()
End Try
MessageBox.Show(row_count)
conn.Close()
当我运行上面的代码时,它显示正确的行数。但是,我试图一次一行将数据放入数组列表中。使用下面的代码不会给我一个错误,但它只读取第一行,然后停止执行。
Try
Dim conn As New MySql.Data.MySqlClient.MySqlConnection(myConnectionString)
conn.Open()
dbQuery = "select * from main_table"
myCommand.CommandText = dbQuery
myCommand.Connection = conn
Dim myReader As MySqlDataReader
myReader = myCommand.ExecuteReader()
While myReader.Read()
For x As Integer = 0 To myReader.FieldCount
col_array.Add(myReader.GetString(x))
Next
End While
Catch ex As MySql.Data.MySqlClient.MySqlException
MessageBox.Show(ex.Message)
Finally
conn.Close()
End Try
conn.Close()
我不明白为什么它在读入第一行后就停止了。
最佳答案
正如评论:
从 0 迭代到 FieldCount
将抛出 IndexOutOfRangeException
,该异常将在第一行之后中断。
For x As Integer = 0 To myReader.FieldCount
col_array.Add(myReader.GetString(x))
Next
将其更改为以 myReader.FieldCount - 1
结尾来解决此问题。
关于mysql - 如何将 MYSQL 数据读取器中的数据获取到 vb.net 中的数组列表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42372471/