c# - 列出带有实例的可用 SQL Server 不包括 SQL Server Express

标签 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

我在这里做错了什么?

最佳答案

我想您可以在注册表中找到本地实例。很久以前我也遇到过同样的问题。以下链接对我有帮助 SqlDataSourceEnumerator.Instance.GetDataSources() does not locate local SQL server 2008 instance

关于c# - 列出带有实例的可用 SQL Server 不包括 SQL Server Express,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19530307/

相关文章:

c# - Azure 云服务使用与其辅助角色不同的 nuget 包路径

c# - 如何检查当前时间是否在时间范围内?

asp.net - 如何在 ASP.NET Web 窗体中使用依赖注入(inject)

c# - 序列化空引用对象

.net - ASP.Net Web 服务响应时间慢

c# - 反编译代码中的这些符号是什么

c# - UWP App 不显示图片

c# - 在行编辑回发后将 gridview 返回到其原始垂直位置

c# - 将 XML 反序列化为 C# XmlRoot 中的对象不起作用

c# - 如何使 Windows 窗体的关闭按钮不关闭窗体而是使其不可见?