我有代码来查找sqlserver的列表
public static string[] GetSQLServerList()
{
SqlDataSourceEnumerator dse = SqlDataSourceEnumerator.Instance;
DataTable dt = dse.GetDataSources();
if (dt.Rows.Count == 0)
{
return null;
}
string[] SQLServers = new string[dt.Rows.Count];
int f = -1;
foreach (DataRow r in dt.Rows)
{
string SQLServer = r["ServerName"].ToString();
string Instance = r["InstanceName"].ToString();
if (Instance != null && !string.IsNullOrEmpty(Instance))
{
SQLServer += "\\" + Instance;
}
SQLServers[System.Math.Max(System.Threading.Interlocked.Increment(ref f), f - 1)] = SQLServer;
}
Array.Sort(SQLServers);
return SQLServers;
}
Run Code Online (Sandbox Code Playgroud)
它工作正常(如果找到SQL Server),但遗憾的是它无法找到sql Express.
有谁有想法?
提前谢谢你
您需要启用SQL浏览器服务以使SQL服务器实例可浏览.
默认情况下,SQL Express没有启用此功能.
参考文献:
SQL Server 2000在内部提供SqlDataSourceEnumerator的信息.但是,SQL Server 2005通过使用名为SQL Browser的外部Windows服务提供信息.默认情况下启用此服务,但管理员可以将其关闭或禁用它,使服务器实例对此类不可见.此服务仅适用于SQL Server 2005,并且对SQL Server 2000的行为没有影响.
默认情况下,SQL Server Express服务未启用SQL Server Express.SQL Server Browser最初可以使用Surface Area Configuration Tool进行配置,并使用SQL Server Configuration Manager进行管理.
| 归档时间: |
|
| 查看次数: |
3291 次 |
| 最近记录: |