Salut à tous,
j'ai écrit un
programme qui lit un fichier texte et le met dans un tableau et ensuite
travaille avec ce tableau
Ce fichier était
avant sur cette forme ci :
100 ;SG
101 ;SA
.
.
.
.
et maintenant
j'ai un tableau de la sorte
...
...
le but de mon
programme est d'assigner à chaque utilisateur de active directory leur numéros
de telephone.
Donc mon
programme lit en fait chaque ligne sur la colonne « User » de mon
tableau , fait une recherche sur active directory, et quand il a trouvé le user
il lui assigne le numéro de telephone qui sur le tableau.
Un exemple :
il lit la 1ere colonne de User qui est SG , il fait une recherche sur active
directory et quand il a trouvé SG il lui assigne donc le numéro 110 du
tableau ; et il en est ainsi pour tous les utilisateurs qui sont dans le
tableau.
Mon programme en
principe devrait marcher , mais il a d' abord mis a tous mes user dans active
directory la valeur 502 qui est la derniere valeur de mon tableau et ensuite ,
il n'a plus fait de changements.
Je ne sais pas s'
il y' a quelque chose qui est faux avec mon programme.
S' il vous plait
aidez moi à retrouver ce qui ne va pas.
Merci d' avance.
Voilà mon
code :
using System;
using System.Drawing;
using System.Collections;
using System.Collections.Generic;
using System.DirectoryServices;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.IO;
using System.IO.Compression;
using System.Reflection;
using System.Diagnostics;
using System.Runtime.CompilerServices;
using System.Text;
namespace fichier
{
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.DataGrid dataGrid1;
private Button btnWriteToLDAP;
private DataTable m_dt;
//private System.Windows.Forms.TextBox textBox1;
//<summary>
// required designer variable.
private System.ComponentModel.Container components = null;
public Form1()
{
// required for windows Form Designer support
InitializeComponent();
// TODO Add any constructor code after InitializeComponent call
}
// clean up any resources being used
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
// required method for designer support - do not modify
// the contents of this method with the code editor.
private void InitializeComponent()
{
this.dataGrid1 = new System.Windows.Forms.DataGrid();
this.btnWriteToLDAP = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
this.SuspendLayout();
//
// dataGrid1
//
this.dataGrid1.DataMember = "";
this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
this.dataGrid1.Location = new System.Drawing.Point(8, 40);
this.dataGrid1.Name = "dataGrid1";
this.dataGrid1.Size = new System.Drawing.Size(400, 400);
this.dataGrid1.TabIndex = 0;
//
// btnWriteToLDAP
//
this.btnWriteToLDAP.Location = new System.Drawing.Point(415, 40);
this.btnWriteToLDAP.Name = "btnWriteToLDAP";
this.btnWriteToLDAP.Size = new System.Drawing.Size(75, 23);
this.btnWriteToLDAP.TabIndex = 1;
this.btnWriteToLDAP.Text = "WriteToLDAP";
this.btnWriteToLDAP.UseVisualStyleBackColor = true;
this.btnWriteToLDAP.Click += new System.EventHandler(this.btnWriteToLDAP_Click);
//
// Form1
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
this.ClientSize = new System.Drawing.Size(680, 425);
this.Controls.Add(this.btnWriteToLDAP);
this.Controls.Add(this.dataGrid1);
this.Name = "Form1";
this.Text = "Form1";
this.Load += new System.EventHandler(this.Form1_Load);
((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
this.ResumeLayout(false);
}
#endregion
// the main entry point for the application
[STAThread]
static void Main()
{
Application.Run(new Form1());
}
private void Form1_Load(object sender, System.EventArgs e)
{
m_dt = new DataTable("test");
m_dt.Columns.Add("TelephoneNumber", System.Type.GetType("System.Int32"));
m_dt.Columns.Add("User", System.Type.GetType("System.String"));
StreamReader fichier = File.OpenText(@"h:\\export.txt");
while (fichier.Peek() >= 0)
{
string ligne = fichier.ReadLine();
string[] vals = ligne.Split(';');
DataRow dr = m_dt.NewRow();
try
{
dr["TelephoneNumber"] = int.Parse(vals[0]);
dr["User"] = vals[1];
m_dt.Rows.Add(dr);
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().ToString());
Console.ReadLine();
}
}
dataGrid1.DataSource = m_dt;
}
private void btnWriteToLDAP_Click(object sender, EventArgs e)
{
try
{
DirectoryEntry deUser = new DirectoryEntry("LDAP://ou=User, ou=User Office, ou=User, DC=hte,DC=intra", "don", "mamanetpapa");
DirectorySearcher searchEmploye = new DirectorySearcher(deUser);
searchEmploye.Filter = "(objectClass= user)";
//FindAll ist eine Methode , die uns erlaubt , alle Ergebnisse zu geben , die die suche entspricht
foreach (SearchResult unResultat in searchEmploye.FindAll())
{
DirectoryEntry unEmploye = unResultat.GetDirectoryEntry();
foreach (DataRow row in m_dt.Rows)
{
if (unEmploye.Properties["SAMAccountName"].Value == row[1])
{
unEmploye.Properties["telephoneNumber"].Value = row[0];
unEmploye.CommitChanges();
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.GetType().ToString());
}
}
}
}
merci encore pour votre aide généreuse
Dorine