Erreur sous C# [Autre soucis]

Erreur sous C# [Autre soucis] - C#/.NET managed - Programmation

Marsh Posté le 02-02-2007 à 10:04:15    

Bonjour,
 
je dois créer un programme qui permet de mettre a jour les utilisateurs cependant lorsque je teste une partie de mon prgramme je tombe sur un message d'erreur de type
 

Code :
  1. An unhandled exception of type 'System.NullReferenceException' occurred in integrationusersldap.dll
  2. Additional information: Object reference not set to an instance of an object.


je n'aarive pa a trouver l'erreur
 
 
Mon code

Code :
  1. public string[] ListAllUsersFromCriteria ()
  2.  {
  3.   if (m_entryForAdministration == null)
  4.   {
  5.    //Error = "No connection for administration";//JROOK
  6.    Error = Dg.Std.Translations.GetTranslationDft(null, Dg.Std.Translations.DGSTD_XMLFILENAME, 90, "No administration connection has been opened" );
  7.    return null; // no connection for admin
  8.   }
  9.   DirectorySearcher deSearch = new DirectorySearcher();
  10.   deSearch.SearchRoot = m_entryForAdministration;
  11.   deSearch.Filter = "(&(objectClass=user)(objectCategory=person))";
  12.   deSearch.SearchScope = SearchScope.Subtree;
  13.   SearchResultCollection  results = deSearch.FindAll();
  14.   string[] arResult = new string[results.Count];
  15.   if(results.Count>0)
  16.   {
  17.    int i = 0;
  18.    foreach(SearchResult result in results)
  19.    {
  20.     arResult[i]= result.Properties["SAMAccountName"][0].ToString();
  21.     DirectorySearcher DirSearch = new DirectorySearcher();
  22.     DirSearch.SearchRoot = m_entryForAdministration;
  23.     DirSearch.SearchScope = SearchScope.Subtree;
  24.     DirSearch.Filter = "(&(objectClass=user)(objectCategory=person)(SAMAccountName="+ arResult[i] +" ))";
  25.     SearchResult res = DirSearch.FindOne();
  26.     DirectoryEntry DirEntry = new DirectoryEntry();
  27.     DirEntry = res.GetDirectoryEntry();
  28.     ShowInfoMessageBox("cn: " + DirEntry.Properties["cn"].Value.ToString() + "   SAMA: " +DirEntry.Properties["SAMAccountName"].Value.ToString() + "   Mail: " +DirEntry.Properties["mail"].Value.ToString());
  29.     i++;
  30.    }
  31.   }
  32.   deSearch.Dispose();
  33.   return arResult;
  34.  }


Message édité par rabzouze le 02-02-2007 à 10:52:07
Reply

Marsh Posté le 02-02-2007 à 10:04:15   

Reply

Marsh Posté le 02-02-2007 à 10:28:43    

debugger ?


---------------
Töp of the plöp
Reply

Marsh Posté le 02-02-2007 à 10:30:27    

deja fait mais jai trouve mon erreur. le probleme est que la valeur de mail n'est pas renseigné pr ts les users.
Il faut ke j'eefectue un test pr savoir si c null ou non

Reply

Marsh Posté le 02-02-2007 à 10:33:32    

(donc édite ton premier message en rajoutant quelque chose du genre "[résolu]" dans le titre de ton topic stp)


---------------
Töp of the plöp
Reply

Marsh Posté le 02-02-2007 à 10:47:41    

excuse moi javai pa vu

Reply

Marsh Posté le 02-02-2007 à 10:51:44    

_darkalt3_ a écrit :

(donc édite ton premier message en rajoutant quelque chose du genre "[résolu]" dans le titre de ton topic stp)


 
J'ai une autre question que je n'arrive pas à resoudre.
 
Voila mon nouveaux codes

Code :
  1. public User[] ListAllUsersFromCriteria ()
  2.  {
  3.   if (m_entryForAdministration == null)
  4.   {
  5.    //Error = "No connection for administration";//JROOK
  6.    Error = Dg.Std.Translations.GetTranslationDft(null, Dg.Std.Translations.DGSTD_XMLFILENAME, 90, "No administration connection has been opened" );
  7.    return null; // no connection for admin
  8.   }
  9.   DirectorySearcher deSearch = new DirectorySearcher();
  10.   deSearch.SearchRoot = m_entryForAdministration;
  11.   deSearch.Filter = "(&(objectClass=user)(objectCategory=person))";
  12.   deSearch.SearchScope = SearchScope.Subtree;
  13.   SearchResultCollection  results = deSearch.FindAll();
  14.   //string[] arResult = new string[results.Count];
  15.   User[] u = new User[results.Count];
  16.   if(results.Count>0)
  17.   {
  18.    int i = 0;
  19.    foreach(SearchResult result in results)
  20.    {
  21.    // arResult[i]= result.Properties["SAMAccountName"][0].ToString();
  22.     DirectorySearcher DirSearch = new DirectorySearcher();
  23.     DirSearch.SearchRoot = m_entryForAdministration;
  24.     DirSearch.SearchScope = SearchScope.Subtree;
  25.     DirSearch.Filter = "(&(objectClass=user)(objectCategory=person)(SAMAccountName="+ result.Properties["SAMAccountName"][0].ToString() + " ))";
  26.    // DirSearch.Filter = "(&(objectClass=user)(objectCategory=person)(SAMAccountName="+ arResult[i] +" ))";
  27.     SearchResult res = DirSearch.FindOne();
  28.     DirectoryEntry DirEntry = new DirectoryEntry();
  29.     DirEntry = res.GetDirectoryEntry();
  30.     string valMail;
  31.     if (DirEntry.Properties["mail"].Value ==null)
  32.      valMail = "";
  33.     else
  34.      valMail = DirEntry.Properties["mail"].Value.ToString();
  35.     u[i] = new User(DirEntry.Properties["cn"].Value.ToString(),DirEntry.Properties["SAMAccountName"].Value.ToString(),valMail);
  36.     ShowInfoMessageBox("cn: " + u[i].getCN() + "   SAMA: " +u[i].getSAMA() + "   Mail: " +u[i].getMail() );
  37.     i++;
  38.    }
  39.   }
  40.   deSearch.Dispose();
  41.   return u;
  42.  }


J'insere le tout dan une classe user afin de bien protégé les élements.
Je souhaiterais les joutais dan un listBox en cliquant sur un bouton voila ce ke je fait.

Code :
  1. private void btListUsers_Click(object sender, System.EventArgs e)
  2.  {
  3.   if (!CheckConnection())
  4.    return;
  5.   if (currentLDAP == null)
  6.    return;
  7.   lstbLists.Items.Clear();
  8.   User[] users = currentLDAP.ListAllUsersFromCriteria();
  9.   //currentLDAP.ListUser();
  10.   if (users != null)
  11.   {
  12.     lstbLists.Items.AddRange(users);
  13.   }
  14.   else
  15.    ShowErrorMessageBox("Error : " + currentLDAP.Error);
  16.  }


Le problem c'est qu'il ne m'affiche pas les valeurs.
Pourrais tu m'aider

Reply

Marsh Posté le 02-02-2007 à 10:56:23    

Regarde la doc de listbox, et vois le type de ce que tu peux ajouter dedans.


---------------
Töp of the plöp
Reply

Marsh Posté le 02-02-2007 à 11:15:49    

_darkalt3_ a écrit :

Regarde la doc de listbox, et vois le type de ce que tu peux ajouter dedans.


je vai y jeté un oeil j'espertrouver

Reply

Marsh Posté le 02-02-2007 à 11:34:30    

Jette un oeil sur le bescherelle aussi, tant qu'à faire.


---------------
Töp of the plöp
Reply

Marsh Posté le 02-02-2007 à 11:35:38    

_darkalt3_ a écrit :

Jette un oeil sur le bescherelle aussi, tant qu'à faire.


c pas gentil

Reply

Marsh Posté le 02-02-2007 à 11:35:38   

Reply

Marsh Posté le 02-02-2007 à 11:41:33    


C'est juste vrai, et c'est pour t'aider.


---------------
Töp of the plöp
Reply

Marsh Posté le 02-02-2007 à 11:57:05    

j'ecris vite pr pouvoir avancer vite lol
Ce n'est pas grave merci tout de même

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed