Querying with the DataReader
The CData ADO.NET Provider for PingOne implements two ADO.NET interfaces you can use to retrieve data from PingOne: PingOneDataAdapter and PingOneDataReader objects. Whereas PingOneDataAdapter objects retrieve a single result set of all the data that matches a query, PingOneDataReader objects fetch data in subset increments as needed.
Using the PingOneDataReader
The PingOneDataReader retrieves data faster than the PingOneDataAdapter because it can retrieve data in pages. As you read data from the PingOneDataReader, 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 [CData].[Administrators].Users table:
C#
string connectionString = "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;";
using (PingOneConnection connection = new PingOneConnection(connectionString)) {
PingOneCommand cmd = new PingOneCommand("SELECT * FROM [CData].[Administrators].Users", connection);
PingOneDataReader rdr = cmd.ExecuteReader();
while (rdr.Read()) {
Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Username"], rdr["Email"]));
}
}
VB.NET
Dim connectionString As String = "AuthScheme=OAuth;InitiateOAuth=GETANDREFRESH;WorkerAppEnvironmentId=eebc33a8-xxxx-4f3a-yyyy-d3e5262fd49e;Region=NA;OAuthClientId=client_id;OAuthClientSecret=client_secret;"
Using connection As New PingOneConnection(connectionString)
Dim cmd As New PingOneCommand("SELECT * FROM [CData].[Administrators].Users", connection)
Dim rdr As PingOneDataReader = cmd.ExecuteReader()
While rdr.Read()
Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Username"), rdr("Email")))
End While
End Using