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));
}
}
}