Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / Languages / C#

SQL Server Network Instance Detector

4.86/5 (23 votes)
7 Nov 20072 min read 1   4.4K  
A simple, ready-to-use control for C# beginners to detect all SQL Server instances in a network and then list all the databases hosted on the selected server

What is it?

Screenshot - MainImage.jpg

Control used in a sample application

Screenshot - Password.jpg

You have to give a username and password to retrieve all hosted databases. Note: SQL_Detect_dll.zip is the assembly containing the SQLServersDetector control. SQL_Detect_source.zip contains the source code of the control, along with a sample application using the control.

Introduction

It's a simple window control that can load all of the SQL Server instances in your local network and then load all of the databases on the selected server. I used SqlDataSourceEnumerator to load servers from the network.

Background

I was writing code in C# that was related to the manipulation of data with more than one database. I found that it was difficult for a user to type the address of a server and database into the text input fields and then connect to them for further manipulation because there is always the chance of the sever name or path being misspelled. If a user by mistake inputs the wrong spelling of the server or database name and then clicks connect, it takes a long time to decide that the path is not valid and throw an exception. Then the user has to to check the spelling again and give the input again, which I think is always irritating. So, I decided to detect the server instances automatically and load databases from the server and so on...

Using the Control

The control is easy to use, as is any other Windows control in .NET. You just have to add a reference of the DLL that is provided with this article. Alternatively, add the project to your solution and add a reference of the project SqlServersDetector to your project. Then the control will appear in your Toolbox just like this.

Screenshot - Toolbox.jpg

Now you can simply drag and drop it onto your form.

Properties of the Control

You can use the following properties of the control if you need them.

C#
//Property to get the connection string that is created 
//by using selected server, selected database, username and password.
lblConnectionString.Text = sqlServersDetector1.DBConnectionString;

//Property to get or set the text that is displayed on 
//upper left corner of the control
sqlServersDetector1.MainLabel = "All Servers";

//Property to get or set the text that of the label 
//against Servers combo box.
sqlServersDetector1.ServersLabel = "Servers";

//Property to get or set the text that of the label 
//against Databases combo box.
sqlServersDetector1.DatabasesLabel = "Database";

//Property to get the selected server instance.
string server = sqlServersDetector1.SelectedServer;

//Property to get the selected database.
string database = sqlServersDetector1.SelectedDatabase;

Using the Example Solution Provided with the Article

If any beginner doesn't know how to use the solution, just download the ZIP file SQL_Detect_source.zip and unzip it. Then open the SQLServerDetectionControl.sln solution file and run the project named TestAppForSQLServerControl. If you are still facing problems using this control, then feel free to ask.

History

  • 7 November, 2007 -- Original version posted

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here