Click here to Skip to main content
15,881,172 members
Articles / Programming Languages / C#
Article

SQL Server Network Instance Detector

Rate me:
Please Sign up or sign in to vote.
4.86/5 (23 votes)
7 Nov 20072 min read 84.9K   4.3K   77   26
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


Written By
Software Developer
Pakistan Pakistan
Syed Mujtaba Hassan
Software Engineer
Intelligentsia Software (Pvt) Ltd Islamabad Pakistan.

Comments and Discussions

 
QuestionDefault Instances Pin
Cesar Esquivel2-Jul-13 6:18
Cesar Esquivel2-Jul-13 6:18 
GeneralMy vote of 5 Pin
Kanasz Robert24-Sep-12 5:59
professionalKanasz Robert24-Sep-12 5:59 
Generalreference file ! Pin
sidra yaseen26-Aug-08 18:12
sidra yaseen26-Aug-08 18:12 
GeneralRe: reference file ! Pin
Syed Mujtaba Hassan26-Aug-08 18:45
Syed Mujtaba Hassan26-Aug-08 18:45 
GeneralProb with VS 2008, SQL 2008 both SP1, .NET 3.5 SP1 [modified] Pin
Brian C Hart16-Aug-08 18:28
professionalBrian C Hart16-Aug-08 18:28 
GeneralRe: Prob with VS 2008, SQL 2008 both SP1, .NET 3.5 SP1 Pin
pvandijk281-Sep-08 23:40
professionalpvandijk281-Sep-08 23:40 
GeneralRe: Prob with VS 2008, SQL 2008 both SP1, .NET 3.5 SP1 Pin
pvandijk281-Sep-08 23:53
professionalpvandijk281-Sep-08 23:53 
GeneralLimitations... Pin
hector [.j.] rivas11-Feb-08 15:37
hector [.j.] rivas11-Feb-08 15:37 
GeneralRe: Limitations... Pin
Syed Mujtaba Hassan11-Feb-08 18:24
Syed Mujtaba Hassan11-Feb-08 18:24 
Yes you are right. You can try these articles for your problem.

http://www.codeproject.com/KB/database/SubmitSQLInfoEnumerator.aspx[^]

http://www.codeproject.com/KB/database/locate_sql_servers.aspx[^]

Mujtaba

"If both of us are having one apple each and we exchange it, at the end we both will have one apple each. BUT if both of us are having one idea each and we exchange it, at the end both of us will be having two ideas each."

Generalproblem retrieving instance names Pin
Farhan Ali4-Dec-07 21:10
Farhan Ali4-Dec-07 21:10 
GeneralRe: problem retrieving instance names Pin
Syed Mujtaba Hassan10-Dec-07 1:43
Syed Mujtaba Hassan10-Dec-07 1:43 
GeneralLimitation Pin
Ashutosh Bhawasinka17-Nov-07 10:48
Ashutosh Bhawasinka17-Nov-07 10:48 
GeneralAlso NetServerEnum... Pin
Cristian Amarie14-Nov-07 7:09
Cristian Amarie14-Nov-07 7:09 
QuestionAny problems like this one? Pin
michaeldjackson13-Nov-07 5:38
michaeldjackson13-Nov-07 5:38 
AnswerRe: Any problems like this one? Pin
Syed Mujtaba Hassan13-Nov-07 22:25
Syed Mujtaba Hassan13-Nov-07 22:25 
GeneralRe: Any problems like this one? Pin
michaeldjackson14-Nov-07 4:21
michaeldjackson14-Nov-07 4:21 
GeneralRe: Any problems like this one? Pin
Syed Mujtaba Hassan14-Nov-07 4:49
Syed Mujtaba Hassan14-Nov-07 4:49 
GeneralRe: Any problems like this one? Pin
michaeldjackson14-Nov-07 6:39
michaeldjackson14-Nov-07 6:39 
GeneralRe: Any problems like this one? Pin
Syed Mujtaba Hassan14-Nov-07 17:12
Syed Mujtaba Hassan14-Nov-07 17:12 
GeneralRe: Any problems like this one? Pin
michaeldjackson15-Nov-07 3:25
michaeldjackson15-Nov-07 3:25 
Generalintresting Pin
michmsk8-Nov-07 2:18
michmsk8-Nov-07 2:18 
GeneralRe: intresting Pin
Syed Mujtaba Hassan8-Nov-07 17:20
Syed Mujtaba Hassan8-Nov-07 17:20 
GeneralGood effort Pin
iamhaider7-Nov-07 22:23
iamhaider7-Nov-07 22:23 
GeneralVery handy Control Pin
Fahim A Salim7-Nov-07 17:19
Fahim A Salim7-Nov-07 17:19 
GeneralThis is quite cool Pin
Frank Kerrigan7-Nov-07 11:45
Frank Kerrigan7-Nov-07 11:45 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.