mysql - 如何将 MYSQL 数据读取器中的数据获取到 vb.net 中的数组列表中

标签 mysql vb.net arraylist

 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/

相关文章:

c# - 修复了 gridview 中的标题列宽度?

java - 转换为 Set 时 List 的大小会发生变化

MySQL SUM() 给出意想不到的答案

mysql - SQL产品过滤器

mysql - 服务器返回无效时区。转到“高级”选项卡并手动设置 servertimezone 属性

.net - VB.NET 中 Dictionary(Of String, SomeReferenceType) 的性能

php - Mysql - 获取最后插入的 ID 不起作用

c# - 在对鼠标点击或按钮按下使用react时,是否可以使用代码模板/设计模式?

java - 如果用户输入不是 ArrayList 中的唯一值,如何循环提示?

java - 数组列表和文件