[ Team LiB ] |
Recipe 1.10 Connecting to Exchange or OutlookProblemYou want to use ADO.NET to extract data from Microsoft Outlook or Microsoft Exchange. SolutionUse the OLE DB Jet provider to access Exchange and Outlook data. The sample code contains two event handlers:
The C# code is shown in Example 1-8. Example 1-8. File: ConnectExchangeDataForm.cs// Namespaces, variables, and constants using System; using System.Windows.Forms; using System.Data; using System.Data.OleDb; // . . . private void ConnectExchangeDataForm_Load(object sender, System.EventArgs e) { mailboxNameTextBox.Text = "Personal Folders"; profileTextBox.Text = "Outlook"; } private void connectButton_Click(object sender, System.EventArgs e) { String sqlText = "SELECT Subject, Contents FROM Inbox"; // Build the connection string. String connectionString="Provider=Microsoft.Jet.OLEDB.4.0;" + "Outlook 9.0;" + "MAPILEVEL=" + mailboxNameTextBox.Text + "|;" + "PROFILE=" + profileTextBox.Text + ";" + "TABLETYPE=0;" + "DATABASE=" + System.IO.Path.GetTempPath( ); // Create the DataAdapter. OleDbDataAdapter da = new OleDbDataAdapter(sqlText, connectionString); // Create and fill the table. DataTable dt = new DataTable("Inbox"); try { da.Fill(dt); dataGrid.DataSource = dt.DefaultView; } catch(Exception ex) { MessageBox.Show("ERROR: " + ex.Message); return; } } DiscussionThe .NET data provider for OLE DB does not support OLE DB Version 2.5 interfaces including the Microsoft OLE DB Provider for Exchange. The Jet OLE DB provider can access an Outlook or Exchange store. An example of the connection string: Microsoft.Jet.OLEDB.4.0;Outlook 9.0;MAPILEVEL=Personal Folders|; PROFILE=Outlook;TABLETYPE=0;DATABASE=c:\temp; The connection string attributes-and-value pairs are described in Table 1-1.
|
[ Team LiB ] |