列出可用的SQL服务器实例不包括SQL Server Express

3

我正在使用以下代码列出所有可用的 SQL 服务器(它来自这里):

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

这里我做错了什么?

我可以连接并使用任何一个 SQL 服务器,所以是的,所有端口都已正确配置。那么在这种情况下,我需要 SQL 浏览器做什么? - ahmd0
SQL 浏览器允许您查看服务器上的实例。 - George Mastros
您是否百分之百确定 SERVER-1 上的本地 Express 实例真的命名为 SQLEXPRESS?如果在该计算机上打开 SQL Server 配置管理器,SQL Server 服务下会显示什么?您可能会看到 SQL Server(MSSQL)(默认实例),而不是 SQL Server(SQLEXPRESS)(命名实例)。您可以安装多个 SQL Express 实例,其中0或1个实例实际上可以称为 SQLEXPRESS 命名实例。因此,仅仅因为它是 SQL Express,并不意味着实例名称自动为 SQLEXPRESS - Aaron Bertrand
@AaronBertrand:SERVER-1\SQLEXPRESS 是我在 SSMS 中连接它的方式。 - ahmd0
请幽默一下告诉我们您在配置管理器中看到了什么。 - Aaron Bertrand
显示剩余2条评论
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接