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

MS SQL Server Discussion :

Explorer les bases de données d'un serveur SQL en c#?


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut Explorer les bases de données d'un serveur SQL en c#?
    bonjour tlm,

    Je suis en train de développer une application en c#, genre client SQL. Je voudrais pouvoir explorer les bases de données disponibles dans un serveur SQL donné. Quelqu'un aurait une idée comment implémenter cette fonctionnalité?

    Merci d'avance.

  2. #2
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Juin 2005
    Messages
    288
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2005
    Messages : 288
    Points : 375
    Points
    375
    Par défaut
    Je ne comprend pas ta question : tu veux lister quoi dans ta base de données ? les tables ? les différents objets ?

    car le mot exploré est un peu vague

  3. #3
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Je veux lister les bases de données disponibles dans le serveur SQL. Une idée?

    Merci d'avance.

  4. #4
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Quelle est ta version de SQL Server ?
    Merci de te conformer à ces règles simples

    Je suppose que c'est 2005. Utilise les assemblies SMO. Un exemple avec code source sur mon site : http://www.babaluga.com/doku.php/sql...s/sproc_helper

  5. #5
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    J'essaie de développer une application qui sera compatible avec SQL Express 2005 et SQL Server 2000.

    J'ai testé ton programme mais ça marche pas: il me retourne 0 bases de données avec SQL Express 2005. Mais le programme fonctionne avec SQL Server 2000.

    Une idée comment corriger ceci?

    Merci.

  6. #6
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Hum, ma mémoire m'a fait défaut : ce code utilise DMO, qui est toujours supporté sur 2000, mais remplacé par SMO, qui est une collection d'assemblies. Tu trouveras beaucoup de code d'exemple d'utilisation de SMO avec

  7. #7
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    J'aurais aimé utiliser ADO .Net. Est ce qu'il y a ce genre de méthodes dans ADO .Net?

  8. #8
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT name FROM sys.databases

  9. #9
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    J'utilise ceci dans une "SqlCommand"?

  10. #10
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    oui, ça te retourne un dataset avec une colonne qui contient le nom de chaque base.

  11. #11
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Quelque chose du genre :

    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
    22
    23
    24
    25
    26
    27
    public static DataSet DataBaseName()
            {
                SqlConnection cn = new SqlConnection(GetConnectionString());
                SqlCommand cmd = new SqlCommand("SELECT name FROM sys.DATABASES", cn);
                DataSet ds = new DataSet()
                SqlDataAdapter sqlDta = new SqlDataAdapter(cmd);
     
                try
                {
                    //Fill the dataset
                    sqlDta.Fill(ds);
                    return ds;
                }
                catch (SqlException ex)
                {
                    ProcessError(ex);
                    return null;
                }
                finally
                {
     
                    if (cn != null) cn.Close();
                    if (ds != null) ds.Dispose();
                    if (cmd != null) cmd.Dispose();
                    if (sqlDta != null) sqlDta.Dispose();
                }
            }
    Mais pour plus de portabilité, je vous recommande d'utiliser les vues d'information de schéma.

  12. #12
    Expert éminent
    Avatar de Ditch
    Inscrit en
    Mars 2003
    Messages
    4 160
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2003
    Messages : 4 160
    Points : 9 634
    Points
    9 634
    Par défaut
    Citation Envoyé par mambo Voir le message
    J'essaie de développer une application qui sera compatible avec SQL Express 2005 et SQL Server 2000.

    J'ai testé ton programme mais ça marche pas: il me retourne 0 bases de données avec SQL Express 2005. Mais le programme fonctionne avec SQL Server 2000.

    Une idée comment corriger ceci?

    Merci.
    http://webman.developpez.com/articles/sqlserver/smo/

  13. #13
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    212
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 212
    Points : 68
    Points
    68
    Par défaut
    Citation Envoyé par WOLO Laurent Voir le message
    Quelque chose du genre :

    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
    22
    23
    24
    25
    26
    27
    public static DataSet DataBaseName()
            {
                SqlConnection cn = new SqlConnection(GetConnectionString());
                SqlCommand cmd = new SqlCommand("SELECT name FROM sys.DATABASES", cn);
                DataSet ds = new DataSet()
                SqlDataAdapter sqlDta = new SqlDataAdapter(cmd);
     
                try
                {
                    //Fill the dataset
                    sqlDta.Fill(ds);
                    return ds;
                }
                catch (SqlException ex)
                {
                    ProcessError(ex);
                    return null;
                }
                finally
                {
     
                    if (cn != null) cn.Close();
                    if (ds != null) ds.Dispose();
                    if (cmd != null) cmd.Dispose();
                    if (sqlDta != null) sqlDta.Dispose();
                }
            }
    Mais pour plus de portabilité, je vous recommande d'utiliser les vues d'information de schéma.
    J'ai pas su récupérer les données du dataset. Comment je dois faire?

    Merci d'avance.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/06/2014, 17h09
  2. Réponses: 1
    Dernier message: 09/12/2013, 10h20
  3. [MySQL] avec php lister toutes les bases de donnée d'une serveur sql
    Par sebou07 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 17/01/2012, 21h00
  4. lister les bases de données de tous les serveurs
    Par haykelFST dans le forum Administration
    Réponses: 3
    Dernier message: 09/12/2011, 16h52
  5. [AC-2007] Partager une base de données sur un serveur et limiter les accés
    Par tounam dans le forum Sécurité
    Réponses: 2
    Dernier message: 07/09/2011, 14h32

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