Imports System
Imports System.Data
Imports System.Threading
Imports System.Data.SqlClient
Public Class MainClass
Public Shared Sub CallBackHandler(ByVal result As IAsyncResult)
Using cmd As SqlCommand = TryCast(result.AsyncState, SqlCommand)
Using reader As SqlDataReader = cmd.EndExecuteReader(result)
SyncLock Console.Out
While reader.Read
Console.WriteLine("{0} {1} {2} {3}", reader("ComponentID"), reader("ComponentDesc"), reader("TotalQuantity"), reader("ListPrice"))
End While
End SyncLock
End Using
End Using
End Sub
Public Shared Sub Main()
Using con As New SqlConnection
con.ConnectionString = "Data Source=.\sqlexpress;Database=AdventureWorks;Integrated Security=SSPI;Asynchronous Processing=true;"
Using cmd As SqlCommand = con.CreateCommand
cmd.CommandType = CommandType.StoredProcedure
cmd.CommandText = "uspGetBillingInfo"
cmd.Parameters.Add("@StartProductID", SqlDbType.Int).Value = 771
cmd.Parameters.Add("@CheckDate", SqlDbType.DateTime).Value = DateTime.Parse("07/10/2000")
con.Open()
cmd.BeginExecuteReader(AddressOf CallBackHandler, cmd)
End Using
con.Close()
End Using
End Sub
End Class