Querying with the DataReader
The CData ADO.NET Provider for Microsoft Dynamics CRM implements two ADO.NET interfaces you can use to retrieve data from Microsoft Dynamics CRM: DynamicsCRMDataAdapter and DynamicsCRMDataReader objects. Whereas DynamicsCRMDataAdapter objects retrieve a single result set of all the data that matches a query, DynamicsCRMDataReader objects fetch data in subset increments as needed.
Using the DynamicsCRMDataReader
The DynamicsCRMDataReader retrieves data faster than the DynamicsCRMDataAdapter because it can retrieve data in pages. As you read data from the DynamicsCRMDataReader, 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 Lead table:
C#
string connectionString = "User=myuseraccount;Password=mypassword;URL=https://myOrg.crm.dynamics.com/;CRM Version=CRM Online;"; using (DynamicsCRMConnection connection = new DynamicsCRMConnection(connectionString)) { DynamicsCRMCommand cmd = new DynamicsCRMCommand("SELECT * FROM Lead", connection); DynamicsCRMDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["FirstName"])); } }
VB.NET
Dim connectionString As String = "User=myuseraccount;Password=mypassword;URL=https://myOrg.crm.dynamics.com/;CRM Version=CRM Online;" Using connection As New DynamicsCRMConnection(connectionString) Dim cmd As New DynamicsCRMCommand("SELECT * FROM Lead", connection) Dim rdr As DynamicsCRMDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("FirstName"))) End While End Using