IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

WinForm : Créer un explorateur d'objet type sqlServer


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut WinForm : Créer un explorateur d'objet type sqlServer
    Bonjour à tous,

    je suis entrain de développer un générateur de procédure stocké et de requête sql.

    Je souhaiterai donc récupérer les infos d'une base de données (Nom de la BD, Nom des tables, champs des tables) le tout dans un treeView, un peu comme l'explorateur d'objet d'SqlServer.

    Mais je bloque.

    J'arrive a récupérer les info dans un dataGridView :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
                BindingSource bingingSource1 = new BindingSource();
                try
                {
                    string dataSource = textBoxDataSource.Text;
                    string catalog = textBoxCatalogSql.Text;
                    using (SqlConnection cx = new SqlConnection(@"Data Source="+dataSource+";Initial Catalog="+catalog+";Integrated Security=True"))
                    {
                        cx.Open();
                        DataTable schema = cx.GetSchema("Columns");
     
                        bingingSource1.DataSource = schema;
                        dataGridView1.DataSource = bingingSource1;
                        cx.Close();
                    }
     
                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message, "erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
    Mais des que je veut insérer les infos dans le treeView, j'obtient des infos générique ( ex: TABLE_CATALOG,TABLE_NAME ...)

    J'arrive pas à récupérer les vrais info et surtout les ordonnées de manière hiérarchique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                        foreach (DataRow row in schema.Rows)
                        {
                            foreach (DataColumn col in schema.Columns)
                            {
                                TreeNode tn = new TreeNode(col.ColumnName); // J'arrive pas a récuperer le nom de la base
                                tn.Nodes.Add(// je devrai ici, ajouter un noeud, qui listerai les tables de la base.
                                // rajouter encore un noeud qui listerai les champs de chaque table.
                                treeView1.Nodes.Add(tn);
     
                            }
     
                        }
    Voici ce que j'obtient :



    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    tu peux utiliser SMO c'est simple à faire

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    ServerConnection srvConn = new ServerConnection(cnxstring);
     
     
     
                srvConn.LoginSecure = false;
     
                srvConn.Login = "login";
     
                srvConn.Password = "pass";
     
                srvSql = new Server(srvConn);
     
               foreach (Database dbServer in srvSql.Databases)
     
                {
     
                    // le nom de  database             dbServer.Name
     
     
                }

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mauritanie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2011
    Messages : 11
    Par défaut
    Tu devrais créer des Node fils contenant les données :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        TreeNode tnFils = new TreeNode("Donnée a afficher");
         this.treeView1.Nodes.Add(tnFils);

  4. #4
    Membre très actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    255
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2011
    Messages : 255
    Par défaut
    @azstar : encore une fois, je tien a te remercier.
    Réponse clair, précise et surtout très utile.

    Après mettre renseigné sur SMO j'ai réussi a faire mon petit explorateur d'objet sqlServer.

    Et comme tu le disait c'est d'une simplicité enfantine.

    Encore merci azstar

    Merci également a ethman.

  5. #5
    Membre Expert
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Par défaut
    de rien mon frère !!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [DisplayTag] Error looking up property "nom" in objet type "mysample.Personne"
    Par slyv dans le forum Taglibs
    Réponses: 3
    Dernier message: 02/03/2011, 17h53
  2. Créer un Explorateur
    Par Folk3n dans le forum Interfaces Graphiques en Java
    Réponses: 9
    Dernier message: 10/05/2006, 08h27
  3. Créer une liste d'objets statiques dans une classe
    Par crossbowman dans le forum C++
    Réponses: 3
    Dernier message: 13/03/2006, 09h11
  4. Crée un objet type ?
    Par shadeoner dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/11/2005, 19h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo