如何在C#中获取服务器名称和实例名称列表

时间:2018-08-22 07:36:28

标签: .net sql-server list instance server-name

我想显示与SQL Server Management Studio相同的服务器名称列表。

当我使用

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

在返回列表中,服务器名称列表为true,但实例名称为false。在我的PC上,服务器名称为[name of pc]\SQLEXPRESS,但实例名称的返回值无。

谢谢。

1 个答案:

答案 0 :(得分:0)

  

已安装的SQL Server实例名称是要读取您的计算机注册表。它将从本地计算机获取所有SQL实例。

        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();
        }