Querying with the DataReader
The CData ADO.NET Provider for Microsoft Active Directory implements two ADO.NET interfaces you can use to retrieve data from Microsoft Active Directory: ActiveDirectoryDataAdapter and ActiveDirectoryDataReader objects. Whereas ActiveDirectoryDataAdapter objects retrieve a single result set of all the data that matches a query, ActiveDirectoryDataReader objects fetch data in subset increments as needed.
Using the ActiveDirectoryDataReader
The ActiveDirectoryDataReader retrieves data faster than the ActiveDirectoryDataAdapter because it can retrieve data in pages. As you read data from the ActiveDirectoryDataReader, 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 User table:
C#
string connectionString = "User=MyUserName;Password=MyPassword;Server=MyServer;Port=MyPort;BaseDN=MyDN;"; using (ActiveDirectoryConnection connection = new ActiveDirectoryConnection(connectionString)) { ActiveDirectoryCommand cmd = new ActiveDirectoryCommand("SELECT * FROM User", connection); ActiveDirectoryDataReader rdr = cmd.ExecuteReader(); while (rdr.Read()) { Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["Id"], rdr["CN"])); } }
VB.NET
Dim connectionString As String = "User=MyUserName;Password=MyPassword;Server=MyServer;Port=MyPort;BaseDN=MyDN;" Using connection As New ActiveDirectoryConnection(connectionString) Dim cmd As New ActiveDirectoryCommand("SELECT * FROM User", connection) Dim rdr As ActiveDirectoryDataReader = cmd.ExecuteReader() While rdr.Read() Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("Id"), rdr("CN"))) End While End Using