Start the process of retrieving a data reader asynchronously. : SqlDataReader « Database ADO.net « VB.Net Tutorial






Imports System.Data.SqlClient

Module Module1
    Sub Main()
        Dim commandText As String = _
         "WAITFOR DELAY '00:00:03';" & _
         "SELECT LastName, FirstName FROM Person.Contact " & _
         "WHERE LastName LIKE 'M%'"

        RunCommandAsynchronously(commandText, "Data Source=(local);Integrated Security=true;Initial Catalog=AdventureWorks; Asynchronous Processing=true")

        Console.WriteLine("Press ENTER to continue.")
        Console.ReadLine()
    End Sub

    Private Sub RunCommandAsynchronously(ByVal commandText As String, ByVal connectionString As String)
        Using connection As New SqlConnection(connectionString)
           Dim command As New SqlCommand(commandText, connection)
           connection.Open()
           Dim result As IAsyncResult = command.BeginExecuteReader()
           Dim count As Integer
           While Not result.IsCompleted
               count += 1
               Console.WriteLine("Waiting ({0})", count)
               Threading.Thread.Sleep(100)
           End While
           Using reader As SqlDataReader = command.EndExecuteReader(result)
               DisplayResults(reader)
           End Using
        End Using
    End Sub

    Private Sub DisplayResults(ByVal reader As SqlDataReader)
        While reader.Read()
            For i As Integer = 0 To reader.FieldCount - 1
                Console.Write("{0} ", reader.GetValue(i))
            Next
        End While
    End Sub

End Module








26.12.SqlDataReader
26.12.1.Start the process of retrieving a data reader asynchronously.