ADO.NET Provider for Dynamics 365 Finance and Operations

Build 21.0.7930

Querying with the DataReader

The CData ADO.NET Provider for Dynamics 365 Finance and Operations implements two ADO.NET interfaces you can use to retrieve data from Dynamics 365 Finance and Operations: D365FinOpDataAdapter and D365FinOpDataReader objects. Whereas D365FinOpDataAdapter objects retrieve a single result set of all the data that matches a query, D365FinOpDataReader objects fetch data in subset increments as needed.

Using the D365FinOpDataReader

The D365FinOpDataReader retrieves data faster than the D365FinOpDataAdapter because it can retrieve data in pages. As you read data from the D365FinOpDataReader, it periodically requests the next page of results from the data source, if required. This causes results to be returned at a faster rate. The following example selects all the columns from the Accounts table:

C#

string connectionString = "InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://myaccount.operations.dynamics.com/;";

using (D365FinOpConnection connection = new D365FinOpConnection(connectionString)) {
  D365FinOpCommand cmd = new D365FinOpCommand("SELECT * FROM Accounts", connection);
  
  D365FinOpDataReader rdr = cmd.ExecuteReader();

  while (rdr.Read()) {
    Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["accountid"], rdr["Name"]));
  }
}

VB.NET

Dim connectionString As String = "InitiateOAuth=GETANDREFRESH;OrganizationUrl=https://myaccount.operations.dynamics.com/;"

Using connection As New D365FinOpConnection(connectionString)
  Dim cmd As New D365FinOpCommand("SELECT * FROM Accounts", connection)

  Dim rdr As D365FinOpDataReader = cmd.ExecuteReader()

  While rdr.Read()
    Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("accountid"), rdr("Name")))
  End While
End Using

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930