0

我正在尝试使用 MySQL.Data Nuget 获得所有结果,因为我使用的是 MariaDB。但是我的方法只是提供了我的数据库中的第一个条目,并且没有其他任何作用。

Public Function getAllFields(ByVal sql As String) As List(Of String)
        Dim output As List(Of String) = New List(Of String)

        Using cn = New MySqlConnection(connString.ToString())

            Using cmd = New MySqlCommand(sql, cn)
                cn.Open()

                Using rd = cmd.ExecuteReader()
                    rd.Read()

                    Dim objs(rd.FieldCount) As Object
                    Dim quant As Integer = rd.GetValues(objs)
                    Dim i As Integer
                    For i = 0 To quant - 1
                        output.Add(objs(i))
                    Next i
                    rd.Close()
                End Using

                cn.Close()
            End Using
        End Using

        Return output

    End Function
4

1 回答 1

1

读取数据时调用rd.Read返回TrueFalse否则返回。所以你需要循环直到它返回False

Using rd = cmd.ExecuteReader()
    While rd.Read()
        Dim objs(rd.FieldCount) As Object
        Dim quant As Integer = rd.GetValues(objs)
        Dim i As Integer
        For i = 0 To quant - 1
            output.Add(objs(i))
        Next i
    End While
End Using
于 2019-08-06T08:44:27.333 回答