Querying with the DataReader
The CData ADO.NET Provider for Salesforce implements two ADO.NET interfaces you can use to retrieve data from Salesforce: SalesforceDataAdapter and SalesforceDataReader objects. Whereas SalesforceDataAdapter objects retrieve a single result set of all the data that matches a query, SalesforceDataReader objects fetch data in subset increments as needed.
Using the SalesforceDataReader
The SalesforceDataReader retrieves data faster than the SalesforceDataAdapter because it can retrieve data in pages. As you read data from the SalesforceDataReader, 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 = "AuthScheme=Basic;User=myUser;Password=myPassword;Security Token=myToken;"; using (SalesforceConnection connection = new SalesforceConnection(connectionString)) { SalesforceCommand cmd = new SalesforceCommand("SELECT * FROM Account", connection); SalesforceDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["BillingState"], rdr["Name"])); } }
VB.NET
Dim connectionString As String = "AuthScheme=Basic;User=myUser;Password=myPassword;Security Token=myToken;" Using connection As New SalesforceConnection(connectionString) Dim cmd As New SalesforceCommand("SELECT * FROM Account", connection) Dim rdr As SalesforceDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("BillingState"), rdr("Name"))) End While End Using