none
Comment faire pour tester la présence d'un serveur base des données(sql server) actifs sur un réseau RRS feed

  • Question

  • Salut,

     

    Je suis entrain de développer une application avec VB.NET 2008 et sql serveur 2000. comme ma base des données sera sur le serveur je voudrais qu'un des mes formulaires ait la possibilité de répertorier tous les serveurs de bd actifs sur le réseau dans un combobox à fin que l'utilisateur n'ayant pas des notions en IT choisisse le serveur pour s'y connecte au lieu de le taper

    mercredi 18 août 2010 08:32

Réponses

  • Merci encore pour m'avoir guider

     

    Je fait juste ceci et je suis parvenu à repertorier tous les serveurs de mon reseau

     

     Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim i As Integer = 0

            Dim d As DataTable = Sql.SqlDataSourceEnumerator.Instance.GetDataSources()
          
            For i = 0 To d.Rows.Count - 1
                Me.ComboBox1.Items.Add(d.Rows(i).Item("ServerName").ToString)

            Next

        End Sub

    • Marqué comme réponse kayuyu mercredi 18 août 2010 16:43
    mercredi 18 août 2010 16:42

Toutes les réponses

  • Je reprend mon probleme peut etre je l'est mal exposé:

    Est-il possible de tester la présence d'un serveur des bd sql server avec vb.net?

     

    je voudrais à ce que mon application tente automatiquement à se connecter à une base des données sql server s'il ne trouve pas le serveur bd il renvoie un message.

    quelqu'un à une solution à mon probleme

    mercredi 18 août 2010 12:07
  • Bonjour kayuyu,

    Oui c'est possible ;)

    Dans un premier temps il existe une méthode qui retourne la liste des serveur SQL accessibles dans un DataTable :

    Dim servers As DataTable = Sql.SqlDataSourceEnumerator.Instance.GetDataSources()
    

    Dans cette table il y a 2 colones très utiles : ServerName (nom du ser verveur ou du pc) et InstanceName (nom de l'instance SQL).

    A partir de ces 2 propriétés, il est possible de reconstruire une chaine de connexion avec un SqlConnexion et de le tester ;)

    Voila


    Jérémy Jeanson MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)
    mercredi 18 août 2010 15:09
  • Merci Jeremy pour cette contribution combien importante, seulement puis je avoir plus d'explication?
    mercredi 18 août 2010 15:15
  • Un code proche de ceci devrait fonctioner :

        Dim servers As DataTable = Sql.SqlDataSourceEnumerator.Instance.GetDataSources()
    
        If servers IsNot Nothing AndAlso servers.Rows.Count > 0 Then
          Dim builder As New SqlClient.SqlConnectionStringBuilder()
    
          ' Ajouter un test si le sql n'a pas de nom d'instance
          builder.DataSource = servers(0)("ServerName").ToString() & "\" & servers(0)("InstanceName").ToString()
          ' Changer le nom de la base de données
          builder.InitialCatalog = "Demo"
          builder.IntegratedSecurity = True
    
          ' Ajouter un try catch pour controller les erreurs de connexion
          Dim connexion As New SqlClient.SqlConnection(builder.ConnectionString)
          connexion.Open()
          If connexion.State = System.Data.ConnectionState.Open Then
            ' connexion établie
          End If
        End If
    

    Jérémy Jeanson MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)
    mercredi 18 août 2010 15:32
  • Merci infiniment pour ce code qui d'apres ce que j'ai compris donne la possibilité de construire une chaine de connexion ainsi on a la possibilité de s'y connecter mais pour mois j'ai deux serveurs sql serveurs et je voudrais faire une boucle pour le mettre dans un combo box et en fonction de cela l'utilisateur choisira le quel se connecter. pour l'instant je ne parvient qu'a afiché le premier serveur. et je voudrais faire une boucle pour afficher les deux dans un combobox

     

    Merci d'avance

    mercredi 18 août 2010 16:16
  • Merci encore pour m'avoir guider

     

    Je fait juste ceci et je suis parvenu à repertorier tous les serveurs de mon reseau

     

     Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            Dim i As Integer = 0

            Dim d As DataTable = Sql.SqlDataSourceEnumerator.Instance.GetDataSources()
          
            For i = 0 To d.Rows.Count - 1
                Me.ComboBox1.Items.Add(d.Rows(i).Item("ServerName").ToString)

            Next

        End Sub

    • Marqué comme réponse kayuyu mercredi 18 août 2010 16:43
    mercredi 18 août 2010 16:42
  • De rien ;)
    Jérémy Jeanson MCP, MCTS http://blogs.codes-sources.com/JeremyJeanson/ (French or English spoken)
    jeudi 19 août 2010 07:30