[Last Call] Learn how to a build a cloud-first strategyRegister Now

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1749
  • Last Modified:

Reading Outlook Contact Details using C#

Hello,
i am using Outlook 2007 and C#.NET 2005 to search the contact from Outlook.
though i have developed the applciation and it is working fine but i have a problem with one of my laptop. in that i have installed office 2007.

i have tested this with office 2007 and also office 2003 on XP, Windows 2003 and Vista machines.
i am not able to understand the problem that i am getting. when i run my application on my laptop i get error "Object referecne not set to an instance of object".

i am attaching the Code snippet that i am using

in the code i am getting error between linenumber 101  and linenumber 104. linenumber is a variable which is assigend line number value to trace the linenumber where error occured.

Regards.
private void btnSearch_Click(object sender, EventArgs e)
{
     int linenumber=68;
     searchResultList.Clear();
     bool bloop = false;
     string owner="";
     OutLook.Items contactItems = null;
     try
     {
          linenumber=68;
          OutLook.Application outapp = new Microsoft.Office.Interop.Outlook.ApplicationClass();
          OutLook.NameSpace outnamespace = outapp.GetNamespace("MAPI");
          OutLook.MAPIFolder contactsFolder = outnamespace.GetDefaultFolder (OutLook.OlDefaultFolders.olFolderContacts);
          contactItems = contactsFolder.Items;
          owner = outnamespace.CurrentUser.AddressEntry.Name;
          linenumber=74;
     }
     catch
     {
          MessageBox.Show("Either Outlook is not available or Outlook has reject your request for connection.", "Outlook Search", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
          return;
     }
 
     try
     {
           if (contactItems.Count == 1 )
           {
                OutLook.ContactItem contact = (OutLook.ContactItem)contactItems.GetFirst();//  .GetNext();
                linenumber=87;
                if (contact.FirstName.ToUpper().StartsWith(txtSearchBox.Text.Trim().ToUpper()))
                {
                    linenumber = 90;
                    Result searchresult = new Result();
                    string name = contact.Title + " " + contact.FirstName + " " + contact.MiddleName + " " + contact.LastName;
                        searchresult.showResult(name, contact.CompanyName, contact.Email1Address, contact.MobileTelephoneNumber);
                    searchresult.ShowDialog();
                    linenumber = 95;
                }
           }
           else if (contactItems.Count > 1)
           {
               bool found = false;
               linenumber = 101;
               foreach (OutLook.ContactItem items in contactItems)
               {
                   if (items.FirstName.ToUpper().StartsWith(txtSearchBox.Text.Trim().ToUpper()))
                   {
                       linenumber = 104;
                       object matcheditems = items;
                       searchResultList.Add(matcheditems);
                       found = true;
                       linenumber = 109;
                    }
               }
               linenumber = 113;
               if (found == false)
               {
                   MessageBox.Show("No record found matching your criteria. Please verify specified search criteria.", "Outlook Contact", MessageBoxButtons.OK, MessageBoxIcon.Information);
               }
               else
               {
                   if (searchResultList.Count == 1)
                   {
                       linenumber = 122;
                       OutLook.ContactItem cntct = (OutLook.ContactItem)searchResultList[0];
                       Result searchresult = new Result();
                       string name = cntct.Title + " " + cntct.FirstName + " " + cntct.MiddleName + " " + cntct.LastName;
                       searchresult.showResult(name, cntct.CompanyName, cntct.Email1Address, cntct.MobileTelephoneNumber);
                       searchresult.ShowDialog();
                       linenumber = 128;
                   }
                   else
                   {
                       linenumber = 132;
                       MatchList matchlist= new MatchList(searchResultList);
                       matchlist.showMatchList();
                       matchlist.ShowDialog();
                       linenumber = 136;
                   }
               }
           }
           else
               MessageBox.Show("No record found matching your criteria. Please verify specified search criteria.", "Outlook Contact", MessageBoxButtons.OK, MessageBoxIcon.Information);      
      }
      catch (Exception ex)
      {
          MessageBox.Show("Exception after Line No. : " +linenumber.ToString()+" for "+ex.Message+"\nTotal match found "+searchResultList.Count.ToString(), "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);        
      } 
 }

Open in new window

0
atulmodi
Asked:
atulmodi
1 Solution
 
ozymandiasCommented:
I would suggest that either :

>> foreach (OutLook.ContactItem items in contactItems)

the collection contactItems has items in it that are null or :

>>if (items.FirstName.ToUpper().

you have items where the FirstName is null

surely you can tell this by setting a break point and looking in the stack ?

0
 
rendaduiyanCommented:
at least, you can debug your  code and tell us which line throw such error.
0
 
atulmodiAuthor Commented:
Hello,
i have already tested it. i have tesed the EXE of four machines and it is working fine even at the place where i have not added any contact List.
only i am having problem on one of my laptop. and it is not a development machine.

Regards.
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now