<%@ 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 OrdersCommand As SqlCommand = New SqlCommand()
Dim CustCommand As SqlCommand = New SqlCommand()
Dim OrdersReader As SqlDataReader
Dim CustReader As SqlDataReader
Dim OrdersASyncResult As IAsyncResult
Dim CustAsyncResult As IAsyncResult
Dim WHIndex As Integer
Dim WHandles(1) As Threading.WaitHandle
Dim OrdersWHandle As Threading.WaitHandle
Dim CustWHandle As Threading.WaitHandle
DBCon = New SqlConnection()
DBCon.ConnectionString = ConfigurationManager.ConnectionStrings("DSN_NorthWind").ConnectionString
CustCommand.CommandText = " SELECT * FROM Customers WHERE CompanyName = 'A' "
CustCommand.CommandType = CommandType.Text
CustCommand.Connection = DBCon
OrdersCommand.CommandText = _
" SELECT Customers.CompanyName, Customers.ContactName, " & _
" Orders.OrderID, Orders.OrderDate, " & _
" Orders.RequiredDate, Orders.ShippedDate " & _
" FROM Orders, Customers " & _
" WHERE Orders.CustomerID = Customers.CustomerID " & _
" AND Customers.CompanyName = 'Alfreds Futterkiste' " & _
" ORDER BY Customers.CompanyName, Customers.ContactName "
OrdersCommand.CommandType = CommandType.Text
OrdersCommand.Connection = DBCon
DBCon.Open ()
CustAsyncResult = CustCommand.BeginExecuteReader()
OrdersASyncResult = OrdersCommand.BeginExecuteReader()
CustWHandle = CustAsyncResult.AsyncWaitHandle
OrdersWHandle = OrdersASyncResult.AsyncWaitHandle
WHandles(0) = CustWHandle
WHandles(1) = OrdersWHandle
For Index As Integer = 0 To 1
WHIndex = Threading.WaitHandle.WaitAny(WHandles)
Select Case WHIndex
Case 0
CustReader = CustCommand.EndExecuteReader(CustAsyncResult)
gvCustomers.DataSource = CustReader
gvCustomers.DataBind()
Case 1
OrdersReader = _
OrdersCommand.EndExecuteReader(OrdersASyncResult)
gvOrders.DataSource = OrdersReader
gvOrders.DataBind()
End Select
Next
DBCon.Close()
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>The Wait Any Approach</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvCustomers" Width="100%" Runat="server"></asp:GridView>
<br /><br />
<asp:GridView ID="gvOrders" Width="100%" AutoGenerateColumns="False"
Runat="server">
<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>
</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>