ADO.NET Provider for Email

Build 21.0.7930

Querying with the DataReader

The CData ADO.NET Provider for Email implements two ADO.NET interfaces you can use to retrieve data from IMAP: EmailDataAdapter and EmailDataReader objects. Whereas EmailDataAdapter objects retrieve a single result set of all the data that matches a query, EmailDataReader objects fetch data in subset increments as needed.

Using the EmailDataReader

The EmailDataReader retrieves data faster than the EmailDataAdapter because it can retrieve data in pages. As you read data from the EmailDataReader, 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 [INBOX] table:

C#

string connectionString = "Port=993;Server=imap.gmail.com;Password=password;User=user;Protocol=IMAP;SMTP Port=587;SMTP Server=smtp.gmail.com;";

using (EmailConnection connection = new EmailConnection(connectionString)) {
  EmailCommand cmd = new EmailCommand("SELECT * FROM [INBOX]", connection);
  
  EmailDataReader rdr = cmd.ExecuteReader();

  while (rdr.Read()) {
    Console.WriteLine(String.Format("\t{0} --> \t\t{1}", rdr["From"], rdr["Subject"]));
  }
}

VB.NET

Dim connectionString As String = "Port=993;Server=imap.gmail.com;Password=password;User=user;Protocol=IMAP;SMTP Port=587;SMTP Server=smtp.gmail.com;"

Using connection As New EmailConnection(connectionString)
  Dim cmd As New EmailCommand("SELECT * FROM [INBOX]", connection)

  Dim rdr As EmailDataReader = cmd.ExecuteReader()

  While rdr.Read()
    Console.WriteLine([String].Format(vbTab & "{0} --> " & vbTab & vbTab & "{1}", rdr("From"), rdr("Subject")))
  End While
End Using

Copyright (c) 2021 CData Software, Inc. - All rights reserved.
Build 21.0.7930