dotConnect for DB2 Documentation
Devart.Data.DB2 Namespace / DB2Command Class / EndExecuteNonQuery Method
The System.IAsyncResult returned from BeginExecuteNonQuery.
Example

In This Topic
    EndExecuteNonQuery Method (DB2Command)
    In This Topic
    Ends an asynchronous invocation of the ExecuteNonQuery method.
    Ends an asynchronous invocation of the ExecuteNonQuery method.
    Syntax
    'Declaration
     
    Public Shadows Function EndExecuteNonQuery( _
       ByVal result As IAsyncResult _
    ) As Integer
    public new int EndExecuteNonQuery( 
       IAsyncResult result
    )

    Parameters

    result
    The System.IAsyncResult returned from BeginExecuteNonQuery.

    Return Value

    For UPDATE, INSERT, and DELETE statements, the return value is the number of rows affected by the command. For all other types of statements, the return value is -1.
    Remarks
    The function ends an asynchronous execution of a query that is started with BeginExecuteNonQuery. A pair of asynchronous functions (BeginExecuteNonQuery and EndExecuteNonQuery) can be used instead of the synchronous function ExecuteNonQuery to gain more performance and flexibility in your application.

    Refer to "Asynchronous Query Execution" article for detailed information.

    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 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 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