The wait approach of handling a single asynchronous process (VB) : IAsyncResult « ADO.net Database « ASP.NET Tutorial






<%@ Page Language="VB" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Configuration" %>

<script runat="server">
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 

        Dim DBCon As SqlConnection
        Dim Command As SqlCommand = New SqlCommand()
        Dim OrdersReader As SqlDataReader
        Dim ASyncResult As IAsyncResult
        Dim WHandle As Threading.WaitHandle

        DBCon = New SqlConnection()
        DBCon.ConnectionString = ConfigurationManager.ConnectionStrings("DSN_NorthWind").ConnectionString

        Command.CommandText = "SELECT TOP 5 Customers.CompanyName, Customers.ContactName, " & _
                " Orders.OrderID, Orders.OrderDate, " & _
                " Orders.RequiredDate, Orders.ShippedDate " & _
                " FROM Orders, Customers " & _
                " WHERE Orders.CustomerID = Customers.CustomerID " & _
                " ORDER BY Customers.CompanyName, Customers.ContactName ";

        Command.CommandType = CommandType.Text
        Command.Connection = DBCon

        DBCon.Open()

        ASyncResult = Command.BeginExecuteReader()

        WHandle = ASyncResult.AsyncWaitHandle

        If WHandle.WaitOne = True Then
            OrdersReader = Command.EndExecuteReader(ASyncResult)

            gvOrders.DataSource = OrdersReader
            gvOrders.DataBind()

            DBCon.Close()
        Else

        End If
    End Sub
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>The Wait Approach</title>
</head>
<body>
    <form id="form1" runat="server">
    <div><br />
    <asp:GridView ID="gvOrders" Runat="server" 
                    AutoGenerateColumns="False" Width="100%">
    <Columns>
        <asp:BoundField HeaderText="Company Name" 
            DataField="CompanyName"></asp:BoundField>
        <asp:BoundField HeaderText="Contact Name" 
            DataField="ContactName"></asp:BoundField>
        <asp:BoundField HeaderText="Order Date" 
            DataField="orderdate" DataFormatString="{0:d}"></asp:BoundField>
        <asp:BoundField HeaderText="Required Date" DataField="requireddate" 
            DataFormatString="{0:d}"></asp:BoundField>
        <asp:BoundField HeaderText="Shipped Date" DataField="shippeddate" 
            DataFormatString="{0:d}"></asp:BoundField>
    </Columns>
    </asp:GridView><br />
    </div>
    </form>
</body>
</html>
File: Web.config

<configuration>

  <connectionStrings>
        <add name="DSN_Northwind" 
             connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True"
             providerName="System.Data.SqlClient" />

    </connectionStrings>

</configuration>








18.47.IAsyncResult
18.47.1.The wait approach of handling a single asynchronous process (C#)
18.47.2.The wait approach of handling a single asynchronous process (VB)
18.47.3.Use of the WaitAny method of processing multiple asynchronous processes (C#)
18.47.4.Use of the WaitAny method of processing multiple asynchronous processes (VB)
18.47.5.The Poll approach of working with asynchronous commands (C#)
18.47.6.The Poll approach of working with asynchronous commands (VB)