Querying with the DataReader
The CData ADO.NET Provider for Salesforce Data Cloud implements two ADO.NET interfaces you can use to retrieve data from Salesforce Data Cloud: SalesforceDataCloudDataAdapter and SalesforceDataCloudDataReader objects. Whereas SalesforceDataCloudDataAdapter objects retrieve a single result set of all the data that matches a query, SalesforceDataCloudDataReader objects fetch data in subset increments as needed.
Using the SalesforceDataCloudDataReader
The SalesforceDataCloudDataReader retrieves data faster than the SalesforceDataCloudDataAdapter because it can retrieve data in pages. As you read data from the SalesforceDataCloudDataReader, 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 Account table:
C#
string connectionString = "InitiateOAuth=GETANDREFRESH;";
using (SalesforceDataCloudConnection connection = new SalesforceDataCloudConnection(connectionString)) {
SalesforceDataCloudCommand cmd = new SalesforceDataCloudCommand("SELECT * FROM Account", connection);
SalesforceDataCloudDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) {
Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["Name"]));
}
}
VB.NET
Dim connectionString As String = "InitiateOAuth=GETANDREFRESH;"
Using connection As New SalesforceDataCloudConnection(connectionString)
Dim cmd As New SalesforceDataCloudCommand("SELECT * FROM Account", connection)
Dim rdr As SalesforceDataCloudDataReader = cmd.ExecuteReader()
While rdr.Read()
Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("Name")))
End While
End Using