dotConnect Universal Documentation
Devart.Common Namespace / DbCommandBase Class / EndExecuteReader Method
The System.IAsyncResult returned from BeginExecuteReader.
Example

In This Topic
    EndExecuteReader Method
    In This Topic
    Ends an asynchronous invocation of the System.Data.Common.DbCommand.ExecuteReader method.
    Syntax
    'Declaration
     
    Public Function EndExecuteReader( _
       ByVal result As IAsyncResult _
    ) As DbDataReader
    public DbDataReader EndExecuteReader( 
       IAsyncResult result
    )

    Parameters

    result
    The System.IAsyncResult returned from BeginExecuteReader.

    Return Value

    A Devart.Common.DbDataReader object.
    Remarks
    The function ends an asynchronous execution of a query that is started with BeginExecuteReader. A pair of asynchronous functions (BeginExecuteReader and EndExecuteReader) can be used instead of the synchronous function Devart.Common.DbCommand.ExecuteReader 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 data retrieval operation is started. The operation state (done or in progress) is checked and a report is written to the console. At last query results are sent to Devart.Common.DbDataReader and rendered to the console.
    public void Async_Exec(DbConnectionBase myConnection)
    {
      DbCommandBase myCommand = (DbCommandBase)myConnection.CreateCommand();
      myCommand.CommandText = "SELECT * FROM Test.Dept";
      Console.WriteLine("Starting asynchronous retrieval of data...");
      myConnection.Open();
      IAsyncResult cres = myCommand.BeginExecuteReader(null, null, CommandBehavior.Default);
      if (cres.IsCompleted)
        Console.WriteLine("Completed.");
      else
        Console.WriteLine("Have to wait for operation to complete...");
      DbDataReader myReader = myCommand.EndExecuteReader(cres);
      try
      {
        while (myReader.Read())
        {
          Console.WriteLine(myReader.GetInt32(0) + " " + myReader.GetString(1) + " " + myReader.GetString(2));
        }
      }
      finally
      {
        myReader.Close();
        myConnection.Close();
      }
    }
    Public Sub Async_Exec(ByVal myConnection As DbConnectionBase)
      Dim myCommand As DbCommandBase = myConnection.CreateCommand()
      myCommand.CommandText = "SELECT * FROM Test.Dept"
      Console.WriteLine("Starting asynchronous retrieval of data...")
      myConnection.Open()
      Dim cres As IAsyncResult = myCommand.BeginExecuteReader(Nothing, Nothing, CommandBehavior.Default)
      If cres.IsCompleted Then
        Console.WriteLine("Completed.")
      Else
        Console.WriteLine("Have to wait for operation to complete...")
      End If
      Dim myReader As DbDataReader = myCommand.EndExecuteReader(cres)
      Try
        While myReader.Read()
          Console.WriteLine(String.Concat(myReader.GetInt32(0), " ", myReader.GetString(1), " ", myReader.GetString(2)))
        End While
      Finally
        myReader.Close()
        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