Finding Instances of SQL Server for DropDownList

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?
 
W

William \(Bill\) Vaughn

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.
__________________________________
 
G

Guest

Bill,

Can't seem to find the reference you mentioned. Very excited to find and
explore it though.
 
W

William \(Bill\) Vaughn

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.
__________________________________
 
G

Guest

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?
 
W

William \(Bill\) Vaughn

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.
__________________________________
 
G

Guest

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top