3

我正在使用以下代码列出所有可用的 SQL Server(取自此处):

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

我在这里做错了什么?

4

1 回答 1

1

我想你可以在注册表中找到本地实例。很久以前我有同样的问题。以下链接帮助我 SqlDataSourceEnumerator.Instance.GetDataSources() 没有找到本地 SQL Server 2008 实例

于 2013-10-22T23:54:52.727 回答