ADO Net C# Tutorial

using System;
using System.Data.SqlClient;
class Class1
{
    static void Main()
    {
        string commandText = "WAITFOR DELAY '00:00:03';" +
            "SELECT LastName, FirstName FROM Person.Contact " +
            "WHERE LastName LIKE 'M%'";
        RunCommandAsynchronously(commandText,"Data Source=(local);Integrated Security=true;Initial Catalog=AdventureWorks; Asynchronous Processing=true");
        Console.WriteLine("Press ENTER to continue.");
        Console.ReadLine();
    }
    private static void RunCommandAsynchronously(string commandText, string connectionString)
    {
        using (SqlConnection connection = new SqlConnection(connectionString)){
            SqlCommand command = new SqlCommand(commandText, connection);
            connection.Open();
            IAsyncResult result = command.BeginExecuteReader();
            int count = 0;
            while (!result.IsCompleted){
                count += 1;
                Console.WriteLine("Waiting ({0})", count);
                System.Threading.Thread.Sleep(100);
            }
            using (SqlDataReader reader = command.EndExecuteReader(result))
            {
                DisplayResults(reader);
            }
        }
    }
    private static void DisplayResults(SqlDataReader reader)
    {
        while (reader.Read())
        {
            for (int i = 0; i < reader.FieldCount; i++)
                Console.Write("{0} ", reader.GetValue(i));
        }
    }
}