我正在使用以下代码列出所有可用的SQL Server(它是taken from here):
DataTable servers = SqlDataSourceEnumerator.Instance.GetDataSources();
for (int i = 0; i < servers.Rows.Count; i++)
{
{
if ((servers.Rows["InstanceName"] as string) != null)
CmbServerName.Items.Add(servers.Rows["ServerName"] + "\\" + servers.Rows["InstanceName"]);
else
CmbServerName.Items.Add(servers.Rows["ServerName"]);
}
}
}
在我的本地系统上(计算机名称为SERVER-1)我有SQL Server 2012 Express,而在远程SERVER-2上我有SQL Server 2008.所以当我运行这段代码时,它会返回:
SERVER-1
SERVER-2\SQLSRVR2008INSTANCENAME
当它应该是:
SERVER-1\SQLEXPRESS
SERVER-2\SQLSRVR2008INSTANCENAME
我在这里做错了什么?
答案 0 :(得分:1)
我猜你可以在注册表中找到本地实例。我有很长时间回答同样的问题。以下链接帮助了我 SqlDataSourceEnumerator.Instance.GetDataSources() does not locate local SQL server 2008 instance