简体   繁体   中英

How we get local SQL Server instance through c#

I am creating a Windows app in which I need to create a connection string automatically. I create a Windows form similar to SQL Server Management Studio Connect to server form. For this I need few things

  1. local SQL server Name of the system.

  2. After user fill the form like select server Name and authentication type then i need to check that that filled details are correct.

  3. I need to create automatic connection string in c# and create automatic database and for this I execute SQL query in c# code that are working fine.

So help me get the instance name and check the data is valid in C# window application.

To get all instances of local network (and local) you can use this code: (from MSDN )

SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
System.Data.DataTable table = instance.GetDataSources();

And to test connection string you can simply open a connection with generated connection string. like this: (from this answer)

string provider = "System.Data.SqlClient"; // for example
DbProviderFactory factory = DbProviderFactories.GetFactory(provider);
using(DbConnection conn = factory.CreateConnection()) {
    conn.ConnectionString = cs;
    conn.Open();
}

use ManagedComputer ,

using Microsoft.SqlServer.Management.Smo.Wmi;

ManagedComputer mc = new ManagedComputer();

foreach (ServerInstance si in mc.ServerInstances)
{
     Console.WriteLine("The installed instance name is " + si.Name);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM