列出可用的具有实例的SQL Server不包括SQL Server Express

时间:2013-10-22 23:48:09

标签: c# asp.net .net sql-server sql-server-2008

我正在使用以下代码列出所有可用的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

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

我猜你可以在注册表中找到本地实例。我有很长时间回答同样的问题。以下链接帮助了我 SqlDataSourceEnumerator.Instance.GetDataSources() does not locate local SQL server 2008 instance