0

I want to show a server name list same SQL Server Management Studio.

When I use

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

In return list, server name list is true, but instance name is false. With my PC, server name is [name of pc]\SQLEXPRESS, but return value of instance name none.

Thank you.

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Tai Pham
  • 29
  • 3
  • Possible duplicate of [SqlDataSourceEnumerator.Instance.GetDataSources() does not locate local SQL server 2008 instance](https://stackoverflow.com/questions/6824188/sqldatasourceenumerator-instance-getdatasources-does-not-locate-local-sql-serv) – Paweł Dyl Aug 22 '18 at 08:34

1 Answers1

0

the installed instance names of SQL server is to read your machine registry. It will fetch all the instances of SQL from your local machine.

        RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server");
        String[] instances = (String[])rk.GetValue("InstalledInstances");
        if (instances.Length > 0)
        {
            foreach (String element in instances)
            {
                if (element == "MSSQLSERVER")
                    Console.WriteLine(System.Environment.MachineName);
                else
                    Console.WriteLine(System.Environment.MachineName + @"\" + element);

            }
            Console.ReadLine();
        }
Vishal Parmar
  • 524
  • 7
  • 27