Mega Code Archive

 
Categories / ASP.Net Tutorial / ADO Net Database
 

Use of the WaitAny method of processing multiple asynchronous processes (VB)

<%@ 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>