ASP.NET Tutorial/ADO.net Database/SqlAsyncResult — различия между версиями

Материал из .Net Framework эксперт
Перейти к: навигация, поиск
м (1 версия)
 
(нет различий)

Версия 18:30, 26 мая 2010

Asynchronous command processing using the callback approach (C#)

   <source lang="csharp">

<%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace="System.Configuration" %> <script runat="server">

   protected void Page_Load(object sender, EventArgs e)
   {
       SqlConnection DBCon;
       SqlCommand Command = new SqlCommand();
       SqlAsyncResult ASyncResult;
       DBCon = new SqlConnection();
       Command = new SqlCommand();
       DBCon.ConnectionString = ConfigurationManager.ConnectionStrings["DSN_NorthWind"].ConnectionString;
       Command.rumandText = 
               "SELECT TOP 5 Customers.rupanyName, Customers.ContactName, " +
               " Orders.OrderID, Orders.OrderDate, " +
               " Orders.RequiredDate, Orders.ShippedDate " +
               " FROM Orders, Customers " +
               " WHERE Orders.CustomerID = Customers.CustomerID " +
               " ORDER BY Customers.rupanyName, Customers.ContactName ";
       Command.rumandType = CommandType.Text;
       Command.Connection = DBCon;
       DBCon.Open();
       AsyncResult = Command.BeginExecuteReader(new AsyncCallback(CBMethod), 
                                       CommandBehavior.CloseConnection);
   }
   public void CBMethod(SQLAsyncResult ar)
   {
       SqlDataReader OrdersReader;
       OrdersReader = ar.EndExecuteReader(ar);
       gvOrders.DataSource = OrdersReader;
       gvOrders.DataBind();
   }

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>The Call Back Approach</title>

</head> <body>

   <form id="form1" runat="server">
   <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> 
   </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></source>


Asynchronous command processing using the callback approach (VB)

   <source lang="csharp">

<%@ Page Language="C#" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.SqlClient" %> <%@ Import Namespace="System.Configuration" %> <script runat="server">

   Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) 
       Dim DBCon As SqlConnection
       Dim Command As SqlCommand = New SqlCommand()
       Dim ASyncResult As SqlAsyncResult
       DBCon = New SqlConnection()
       Command = New SqlCommand()
       DBCon.ConnectionString = _
       ConfigurationManager.ConnectionStrings("DSN_NorthWind").ConnectionString
       Command.rumandText = _
               "SELECT TOP 5 Customers.rupanyName, Customers.ContactName, " & _
               " Orders.OrderID, Orders.OrderDate, " & _
               " Orders.RequiredDate, Orders.ShippedDate " & _
               " FROM Orders, Customers " & _
               " WHERE Orders.CustomerID = Customers.CustomerID " & _
               " ORDER BY Customers.rupanyName, Customers.ContactName "
       Command.rumandType = CommandType.Text
       Command.Connection = DBCon
       DBCon.Open()
       AsyncResult = Command.BeginExecuteReader(New _
          AsyncCallback(AddressOf CBMethod), CommandBehavior.CloseConnection)
   End Sub
   Public Sub CBMethod(ByVal ar As SQLAsyncResult)
       Dim OrdersReader As SqlDataReader
       OrdersReader = ar.EndExecuteReader(ar)
       gvOrders.DataSource = OrdersReader
       gvOrders.DataBind()
   End Sub

</script> <html xmlns="http://www.w3.org/1999/xhtml" > <head id="Head1" runat="server">

   <title>The Call Back Approach</title>

</head> <body>

   <form id="form1" runat="server">
   <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> 
   </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></source>