Introduction
This article explains how to create an async SqlConnection in ASP .Net 4.5 and using the SqlCommand.BeginExecuteNonQuery Method (AsyncCallback, Object).
So, let's proceed with the following procedure:
- Create an Asynchronous Page ASP .NET web page
- Create a Connection, Create a Command, Create a Parameter and Grid View binding
Creating an Asynchronous Page
Create a new project using "File" -> "New" -> "Project..." then select web "ASP .Net Web Forms Application". Name it "AsyncProgramming".
Next, create the code-behind as follows: The first step to building an asynchronous page is setting the Async attribute in the Page directive to true, as shown here:
- <%@ Page Language="C#" Async="true" %>
In the web.config file create the database. Set on the connection string: Asynchronous operation to work, the attribute Async=True; as shown here:
Now, in the code behind file AsyncSqlConnection.aspx use the following code.
- <%@ Page Language="C#" Title="Asynchronous programming" Async="true" AutoEventWireup="true"
- CodeBehind="AsyncSqlConnection.aspx.cs" Inherits="AsyncProgramming.AsyncSqlConnection" %>
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head runat="server">
- <title></title>
- </head>
- <body>
- <form id="form1" runat="server">
- <div>
- <h3 style="font-family: Kartika; font-variant: normal; color: #0000FF; font-style: normal;">Async
- SqlConnection</h3>
- <p style="color: #FF0000">Student Details</p>
- <asp:GridView ID="StudentGridView" runat="server" BackColor="White" BorderColor="#CCCCCC"
- BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal">
- <FooterStyle BackColor="#CCCC99" ForeColor="Black" />
- <HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
- <PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
- <SelectedRowStyle BackColor="#CC3333" Font-Bold="True" ForeColor="White" />
- <SortedAscendingCellStyle BackColor="#F7F7F7" />
- <SortedAscendingHeaderStyle BackColor="#4B4B4B" />
- <SortedDescendingCellStyle BackColor="#E5E5E5" />
- <SortedDescendingHeaderStyle BackColor="#242121" />
- </asp:GridView>
- </div>
- </form>
- </body>
- </html>
Create Connection, SqlCommand.BeginExecuteNonQuery Method and Grid View Bind
Now, in the code behind file “AsyncSqlConnection.aspx.cs“ use the following code.
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
-
- using System.Data;
- using System.Data.SqlClient;
- using System.Configuration;
- using System.Threading.Tasks;
-
- namespace AsyncProgramming
- {
- public partial class AsyncSqlConnection : System.Web.UI.Page
- {
- #region SqlConnection Connection
- SqlConnection conn = new
- SqlConnection(ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
- #endregion
- #region show message
-
-
-
-
- void ShowMessage(string msg)
- {
- ClientScript.RegisterStartupScript(Page.GetType(), "validation", "<script
- language='javascript'>alert('" + msg + "');</script>");
- }
- #endregion
- protected void Page_Load(object sender, EventArgs e)
- {
- PageAsyncTask pat = new PageAsyncTask(BeginAsync, EndAsync, null, null, true);
- this.RegisterAsyncTask(pat);
- }
-
- private IAsyncResult BeginAsync(object sender, EventArgs e, AsyncCallback cb, object state)
- {
- conn.Open();
- SqlCommand cmd = new SqlCommand("Select * from StudentTable WAITFOR DELAY '00:00:01'",
- conn);
- SqlDataAdapter adp = new SqlDataAdapter(cmd);
- DataSet ds = new DataSet();
- adp.Fill(ds);
- StudentGridView.DataSource = ds;
- StudentGridView.DataBind();
- IAsyncResult ar = cmd.BeginExecuteNonQuery(cb, cmd);
- return ar;
- }
-
-
- private void EndAsync(IAsyncResult ar)
- {
- using (SqlCommand cmd = (SqlCommand)ar.AsyncState)
- {
- using (cmd.Connection)
- {
- int rows = cmd.EndExecuteNonQuery(ar);
- }
- }
- }
- }
- }
Run the Page
Now, run in the browser as shown here.
I hope this article is useful. If you have any other questions then please provide your comments in the following.