Finding Instances of SQL Server for DropDownList

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I'm writnng a support routine which helps log on to instances of SQL Server.
Currently I populate a DropDownList with known names of SQL Server Instances.
What I would like is a simple way (if possible) to populate this control by
shouting into the network and listening for replies saying "I'm a SQL Server
instance, these are my characteristics. Here I am!". Sort of like getting a
directory of files but of SQL server names instead. Am I dreaming?
 
Nope, you're not dreaming. In the olden days we used NetServeEnum(2) to
enumerate the servers, but in the 2.0 Framework you can call a
GetProviderFactory class (or somesuch) to do so.

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
Bill,

Can't seem to find the reference you mentioned. Very excited to find and
explore it though.
 
How's this? It's from my "Connecting" talk and part of my ADO.NET 2.0 VSLive
Workshop to be done in SFO in February.

Private Sub ReturnListOfServerInstances(ByVal sender As System.Object, ByVal
e As System.EventArgs) Handles Button1.Click
Dim drProvider As DataRow =
DbProviderFactories.GetFactoryClasses.Rows(0) ' To make sure object is
instantiated
Try
Me.Cursor = Cursors.WaitCursor
' DbProviderFactories is a new class for ADO 2.0
' GetFactoryClasses is a new method for ADO 2.0
tblProviders = DbProviderFactories.GetFactoryClasses()
For Each drProvider In tblProviders.Rows
Dim factory As DbProviderFactory =
DbProviderFactories.GetFactory(drProvider)
Dim dsE As DbDataSourceEnumerator =
factory.CreateDataSourceEnumerator()
If dsE Is Nothing Then
Else
DataGridView1.DataSource = dsE.GetDataSources()
End If
Next drProvider
Catch exCE As System.Configuration.ConfigurationException
MsgBox("The " & drProvider(0).ToString & " could not be
loaded.")
Catch ex As Exception
MsgBox(ex.ToString)
Finally
Me.Cursor = Cursors.Default
End Try
End Sub

--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
Let me give the snippet a whirl. Thanks for the help. I'll let you know how
it goes. What conference in SFO in February?
 
VSLive. I hope it works.


--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant
Microsoft MVP
INETA Speaker
www.betav.com/blog/billva
www.betav.com
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
 
Works great. I noticed that if I have my VPN open to another location that
also has SQL servers, the routine will not return instances on the other side
of the VPN, just my local network. The code as it is however is vastly better
than what I had before.
 
Back
Top