C# - Milyen SQL szerverek érhetők el aktuálisan?

forráskód letöltése
Ha a helyi hálózatban több SQL szerver is elérhető, akkor nem árt, ha programunk tisztában van azzal a kérdéssel, hogy aktuálisan mely szerverek érhetők el. Ha tudjuk a szerverek neveit, akkor programból már egyszerűen kapcsolódhatunk bármelyikhez igény szerint.
A megvalósításhoz az SQL Distributed Management Objects-el (SQL-DMO) ismerkedünk meg.
Az SQL DMO használatához szükségünk lesz arra, hogy a Microsoft SQLDMO Object Library referenciáját hozzáadjuk projektünkhöz. Ehhez válasszuk a Project - Add reference menüpontot, majd a megjelenő ablakban a COM lapon keressük elő ezt és adjuk hozzá projektünkhöz.
Ezt követően máris használhatjuk az SQL DMO objektumait, függvényeit, melynek segítségével könnyedén lekérdezhetjük, hogy mely SQL szerverek is érhetők el a hálózatban.
Első lépésként létrehozunk egy Application objektumot, melynek ListAvailableSQLServers függvénye szolgáltatja a számunkra érdekes kollekciót NameList osztály típusban.
    private void button1_Click(object sender, System.EventArgs e)
    {
      SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
      SQLDMO.NameList listServers = sqlApp.ListAvailableSQLServers();
Most már csak annyi a teendőnk, hogy végigmegyünk ezen a kollekción és kiírjuk egy ListBox-ba az elérhető SQL szerverek neveit.
      foreach (object server in listServers)
      {
        listBox1.Items.Add(server.ToString());
      }    
    }