2013-06-09 6 views
-4

Je veux obtenir les contacts de outlook en C# en grille. J'ai utilisé la version Microsoft Outlook 12.0 Object Library 9.3. J'essaie d'obtenir les contacts affichés dans gridview quand on clique sur le bouton getcontact.Comment faire pour que les contacts de outlook à C#?

Le code est collé ci-dessous; veuillez vérifier et m'aider à résoudre le problème.

private void button1_Click(object sender, EventArgs e) 
     { 
      GetContacts(); 
     } 
       public DataSet GetContacts() 
       { 
        DataSet ds = new DataSet(); 
        ds.Tables.Add("Contacts"); 
        ds.Tables[0].Columns.Add("Email"); 
        ds.Tables[0].Columns.Add("FirstName"); 
        ds.Tables[0].Columns.Add("LastName"); 

       Microsoft.Office.Interop.Outlook.Items OutlookItems; 
       Microsoft.Office.Interop.Outlook.Application outlookObj; 
       MAPIFolder Folder_Contacts; 

       outlookObj = new Microsoft.Office.Interop.Outlook.Application(); 
       Folder_Contacts = 
    (MAPIFolder)outlookObj.Session.GetDefaultFolder(
    OlDefaultFolders.olFolderContacts); 
       OutlookItems = Folder_Contacts.Items; 

       for (int i = 0; i < OutlookItems.Count; i++) 
       { 
        Microsoft.Office.Interop.Outlook.ContactItem contact = 
    (Microsoft.Office.Interop.Outlook.ContactItem)OutlookItems[i + 1]; 
        DataRow dr = ds.Tables[0].NewRow(); 
        dr[0] = contact.Email1Address; 
        dr[1] = contact.FirstName; 
        dr[2] = contact.LastName; 

        ds.Tables[0].Rows.Add(dr); 
        dataGridView1.DataSource = dr; 
        richTextBox1.Text = dr.ToString(); 
       } 

       dataGridView1.Show(); 
       return ds; 
      } 
+0

veuillez quelqu'un m'aider à résoudre le problème !! merci – user2420211

+0

Quelle est votre vraie question? Votre code ne fonctionne pas d'une manière ou d'une autre? –

+2

Aussi, je note que vous avez posté deux fois votre question (http://stackoverflow.com/questions/16884063/get-outlook-contacts-in-to-c-sharp-form-based-application). S'il vous plaît ne faites pas! –

Répondre

0

J'ai essayé le code mentionné ci-dessous pour récupérer les données de perspectives à C# application de bureau dans gridview ... J'ai utilisé ci-dessus mentionné API pour cela et a obtenu l'adresse e-mail de Outlook qui est configuré sur votre système ! le code est collé ci-dessous. l'API utilisée fonctionne bien avec Outlook 2007 et 2003 ... mais pour Outlook 2010 ... il est suggéré d'utiliser l'autre API !!

Le code est collé ci-dessous.

private void button1_Click(object sender, EventArgs e) 
    { 

     fetchOutlookContacts(); 
    } 

    public void fetchOutlookContacts() 
    { 


     Microsoft.Office.Interop.Outlook.Items OutlookItems; 
     Microsoft.Office.Interop.Outlook.Application outlookObj; 
     MAPIFolder Folder_Contacts; 

     outlookObj = new Microsoft.Office.Interop.Outlook.Application(); 
     Folder_Contacts = (MAPIFolder)outlookObj.Session.GetDefaultFolder(OlDefaultFolders.olFolderContacts); 
     OutlookItems = Folder_Contacts.Items; 

     DataTable dt = new DataTable(); 
     dt.Columns.Add("Email Address"); 

     for (int i = 0; i < OutlookItems.Count; i++) 
     { 
      Microsoft.Office.Interop.Outlook.ContactItem contact = (Microsoft.Office.Interop.Outlook.ContactItem)OutlookItems[i + 1]; 
      dt.Rows.Add(new object[] { contact.Email1Address }); 
      dataGridView1.DataSource = dt; 
     } 
     dataGridView1.Show(); 

    } 
Questions connexes