ASP.NET Tutorial/ADO.net Database/SqlAsyncResult — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 14:56, 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>