Tuesday, November 18, 2008

SQL Server Network Instance Detector

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.


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.


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.

//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.

Download control DLL - 4.7 KB

Download source - 31.8 KB

This article is also available on codeproject on the following link.


No comments:

Post a Comment