我正在使用以下代码列出所有可用的 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
这里我做错了什么?
SQLEXPRESS
?如果在该计算机上打开 SQL Server 配置管理器,SQL Server 服务下会显示什么?您可能会看到SQL Server(MSSQL)
(默认实例),而不是SQL Server(SQLEXPRESS)
(命名实例)。您可以安装多个 SQL Express 实例,其中0或1个实例实际上可以称为SQLEXPRESS
命名实例。因此,仅仅因为它是 SQL Express,并不意味着实例名称自动为SQLEXPRESS
。 - Aaron BertrandSERVER-1\SQLEXPRESS
是我在 SSMS 中连接它的方式。 - ahmd0