Querying with the DataReader
The CData ADO.NET Provider for Microsoft Dynamics 365 Business Central implements two ADO.NET interfaces you can use to retrieve data from Microsoft Dynamics 365 Business Central: D365BusinessCentralDataAdapter and D365BusinessCentralDataReader objects. Whereas D365BusinessCentralDataAdapter objects retrieve a single result set of all the data that matches a query, D365BusinessCentralDataReader objects fetch data in subset increments as needed.
Using the D365BusinessCentralDataReader
The D365BusinessCentralDataReader retrieves data faster than the D365BusinessCentralDataAdapter because it can retrieve data in pages. As you read data from the D365BusinessCentralDataReader, 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://api.businesscentral.dynamics.com/v1.0/api/v1.0"; using (D365BusinessCentralConnection connection = new D365BusinessCentralConnection(connectionString)) { D365BusinessCentralCommand cmd = new D365BusinessCentralCommand("SELECT * FROM Accounts", connection); D365BusinessCentralDataReader 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://api.businesscentral.dynamics.com/v1.0/api/v1.0" Using connection As New D365BusinessCentralConnection(connectionString) Dim cmd As New D365BusinessCentralCommand("SELECT * FROM Accounts", connection) Dim rdr As D365BusinessCentralDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("accountid"), rdr("Name"))) End While End Using