可能的重复:
SqlDataSourceEnumerator.Instance.GetDataSources() 找不到本地 SQL Server 2008 实例 https://stackoverflow.com/questions/6824188/sqldatasourceenumerator-instance-getdatasources-does-not-locate-local-sql-serv
我正在使用下面的代码来获取本地计算机中的所有实例名称和服务器名称,但它似乎只返回一个实例;如何获取本地计算机中实例名称和服务器名称的所有列表?
string myServer = Environment.MachineName;
DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources();
for (int i = 0; i < servers.Rows.Count; i++)
{
if (myServer == servers.Rows[i]["ServerName"].ToString())
{
if ((servers.Rows[i]["InstanceName"] as string) != null)
{
CmbServerName.Visibility = Visibility.Visible;
CmbServerName.Items.Add(servers.Rows[i]["ServerName"] + "\\" + servers.Rows[i]["InstanceName"]);
}
else
{
CmbServerName.Visibility = Visibility.Visible;
CmbServerName.Items.Add(servers.Rows[i]["ServerName"]);
}
}
}
提前致谢!
获取 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();
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)