2

読み取る前に MySQL 応答のサイズを受け取ることは可能ですか? 受信プロセスに関するステータスを示すプログレスバーを表示できるようにします。

Public Function QUERY(ByVal queryString As String, ByVal connection As MySqlConnection)
Try
    Dim newQuery As String() = Split(queryString, ":")
    For Each Query In newQuery
        Dim cmd As New MySqlCommand(Query, connection)
        Dim reader As MySqlDataReader
        reader = cmd.ExecuteReader()
        While reader.Read()
        End While
        reader.Close()
    Next
Catch ex As Exception
    console("Error: " & ex.Message)
    Return ex.Message
End Try
Return ""
End Function
4

1 に答える 1

2

いいえ、DataReader を使用すると、リーダーの最後に到達するまで、クエリによって返されるレコードの数を知ることができません。ただし、最初のステートメントがデータのカウントである場合、クエリで複数のステートメントを使用できます。

これは考えられる例です:

using con = new MySqlConnection("your_connection_string")
    con.Open()
    Dim cmd As MySqlCommand = new SqlCommand("SELECT COUNT(*) FROM MyTable;" & _
                                             "SELECT * FROM MyTable", con)
    Dim dr as MySqlDataReader = cmd.ExecuteReader()
    if dr.HasRows Then        
        dr.Read()
        Dim count = Convert.ToInt32(dr(0))
        Console.WriteLine("Reading:" & count.ToString() & " records")
        dr.NextResult()
        while dr.Read()
            Console.WriteLine("Record:" + dr(dr.GetOrdinal("TableID")).ToString())
        End While
    End if
End Using
于 2013-08-08T20:43:22.550 に答える