我正在使用以下代码来获取已安装的服务器实例列表。
Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
datatable1 = sqldatasourceenumerator1.GetDataSources()
有时此代码运行良好,但大多数时候它会丢失并且系统变得无响应。
谁能告诉我一些在所有条件下都可靠的替代代码?谢谢
我正在使用以下代码来获取已安装的服务器实例列表。
Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
datatable1 = sqldatasourceenumerator1.GetDataSources()
有时此代码运行良好,但大多数时候它会丢失并且系统变得无响应。
谁能告诉我一些在所有条件下都可靠的替代代码?谢谢
您可以检查注册表,例如您可以尝试读取此注册表项:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL
64 位操作系统上的 32 位实例应列在:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\Instance Names\SQL
这是 ac# 代码片段,用于在 64 位 Windows 上获取 64 位实例的此信息:
RegistryKey baseKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey key = baseKey.OpenSubKey(@"SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL");
foreach (string s in key.GetValueNames())
{
...
}
key.Close();
baseKey.Close();