none
Cargar DataGridView con datos de active directory RRS feed

  • Pregunta

  • Hola,

    Vengo a pedir ayuda, necesito cargar un control DataGridView con los datos traídos del Active Directory, esto con ejemplos que encontre los traigo, pero no he podido pasarlos al control para mostrarlos.

    Este es el codigo que tengo hasta ahora :

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using System.DirectoryServices;
    
    namespace cargaMysql
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
    
                DirectoryEntry entradas = new DirectoryEntry("LDAP://10.100.0.124:389", "usuario", "password");
                DirectorySearcher buscador = new DirectorySearcher(entradas);
    
                buscador.Filter = "(&((&(objectCategory=Person)(objectClass=User))))";
    
                int contador = 0;            
    
                foreach(SearchResult resultado in buscador.FindAll())
                {
                    dgvActive.Rows.Insert(contador,GetProperty(resultado,"sn"));
                    contador = contador++;
                }
    
    
            }
    
            public static string GetProperty(SearchResult searchResult,string PropertyName)
            {
                if (searchResult.Properties.Contains(PropertyName))
                {
                    return searchResult.Properties[PropertyName][0].ToString();
                }
                else
                {
                    return string.Empty;
                }
            }
        }
    }

    Saludos.

    martes, 18 de agosto de 2015 20:22

Respuestas

  • >>pero sigue sin mostrar nada el Datagridview,

    pero desde AD obtienes alguna respuesta ? si pones un breakpoint en el codigo puedes validar que ingresa al foreach

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Alexis Rebolledo miércoles, 19 de agosto de 2015 13:08
    martes, 18 de agosto de 2015 21:14

Todas las respuestas

  • hola

    porque usas el insert en lugar del add ?

    foreach(SearchResult resultado in buscador.FindAll()) {

    string sn = GetProperty(resultado,"sn"); dgvActive.Rows.Add(new string[] { sn } ); }

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 18 de agosto de 2015 20:27
  • Gracias Leandro,

    Hice el cambio que me indicas, pero sigue sin mostrar nada el Datagridview, y la consulta al Active Dirtectory de datos la tengo en una aplicación de consola que había de ejemplos y traigo los datos, los muestra en la consola. Pero no puedo mostrarlos en el el control.

    Saludos.

    martes, 18 de agosto de 2015 20:58
  • >>pero sigue sin mostrar nada el Datagridview,

    pero desde AD obtienes alguna respuesta ? si pones un breakpoint en el codigo puedes validar que ingresa al foreach

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Alexis Rebolledo miércoles, 19 de agosto de 2015 13:08
    martes, 18 de agosto de 2015 21:14
  • Leandro,

    Revise lo que me dijiste, y efectivamente no entraba en el foreach, creo que era por el tiempo de ejecución, hice una pequeña modificación, ya que en la aplicación de consola se demora un poco en traer los datos del AD, así que en vez de cargar los datos en el Load del Form, agregue un botón y en su evento click coloque el código, y carga sin problemas el DataGridView.

    Ahora que traigo los datos del AD y logre conectarme a Mysql, debo crear un Windows Services para cargar los datos de los usuarios del AD en una tabla en el MySql. Que es para lo que estaba haciendo pruebas y cargas. Gracias Leandro, me haz ayudado siempre, un abrazo.

    Saludos, desde Chile.

     

    miércoles, 19 de agosto de 2015 13:08