Namespace DotNetSide.Articles.AsyncDataAccess
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Data.SqlClient
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Public Class Form1
Inherits Form
Public Sub New()
MyBase.New
InitializeComponent
End Sub
Private Sub btnStart_Click(ByVal sender As Object, ByVal e As EventArgs)
Dim myConnection As SqlConnection = New SqlConnection
myConnection.ConnectionString = "Data Source=.\\SQLEXPRESS;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ProgrammareADONet;async=true"
myConnection.Open
Dim cmd As SqlCommand = myConnection.CreateCommand
cmd.CommandText = "WaitFor Delay '00:00:15' Select @@Version"
cmd.BeginExecuteReader(New AsyncCallback(ProcessResult), cmd)
End Sub
Public Sub ProcessResult(ByVal asyncRes As IAsyncResult)
Dim cmd As SqlCommand = CType(asyncRes.AsyncState,SqlCommand)
cmd.Connection
cmd
Dim DBVersion As String = string.Empty
Dim myReader As SqlDataReader = cmd.EndExecuteReader(asyncRes)
If myReader.Read Then
DBVersion = myReader(0).ToString
lbltextVersion.BeginInvoke(New LabelHnd(Update), DBVersion)
End If
End Sub
Public Sub Update(ByVal text As String)
lbltextVersion.Text = text
End Sub
Public Delegate Sub LabelHnd(ByVal value As String)
End Class
End Namespace