BeginExecuteNonQuery(AsyncCallback,Object) Method
In This Topic
Starts an asynchronous invocation of an
ExecuteNonQuery method with information for callback function.
Syntax
Parameters
- callback
- The delegate to call when the asynchronous invoke is complete. If callback is a null reference (Nothing in Visual Basic), the delegate is not called.
- stateObject
- State information that is passed on to the delegate.
Return Value
An
System.IAsyncResult interface that represents the asynchronous operation started by calling this method.
Example
In the example below an easiest way of executing an asynchronous operation is shown. First, all components are set up and a connection is opened. Second, a query execution is started. The operation state (done or in progress) is checked and a report is written to the console. At last query result is rendered.
static void Async_Exec(DbConnectionBase myConnection)
{
DbCommandBase myCommand = (DbCommandBase)myConnection.CreateCommand();
myCommand.CommandText = "UPDATE Test.Dept SET DName='New Department' WHERE DeptNo=10";
Console.WriteLine("Starting asynchronous query execution...");
myConnection.Open();
IAsyncResult cres = myCommand.BeginExecuteNonQuery(null, null);
if (cres.IsCompleted)
Console.WriteLine("Completed.");
else
Console.WriteLine("Have to wait for operation to complete...");
try
{
int RowsAffected = myCommand.EndExecuteNonQuery(cres);
Console.WriteLine("Done. Rows affected: " + RowsAffected.ToString());
}
catch (Exception e)
{
Console.WriteLine("An exception has occurred: " + e.Message);
}
finally
{
myConnection.Close();
}
}
Public Sub Async_Exec(ByVal myConnection As DbConnectionBase)
Dim myCommand As DbCommandBase = myConnection.CreateCommand()
myCommand.CommandText = "UPDATE Test.Dept SET DName='New Department' WHERE DeptNo=20"
Console.WriteLine("Starting asynchronous query execution...")
myConnection.Open()
Dim cres As IAsyncResult = myCommand.BeginExecuteNonQuery(Nothing, Nothing)
If cres.IsCompleted Then
Console.WriteLine("Completed.")
Else
Console.WriteLine("Have to wait for operation to complete...")
End If
Try
Dim RowsAffected As Integer = myCommand.EndExecuteNonQuery(cres)
Console.WriteLine(String.Concat("Rows affected: ", RowsAffected.ToString()))
Catch e As Exception
Console.WriteLine(String.Concat("An exception has occurred: ", e.Message))
Finally
myConnection.Close()
End Try
End Sub
Requirements
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
See Also