我正在使用以下代码来获取已安装的服务器实例列表。
Dim sqldatasourceenumerator1 As SqlDataSourceEnumerator = SqlDataSourceEnumerator.Instance
datatable1 = sqldatasourceenumerator1.GetDataSources()
有时候这段代码运行正常,但大部分时间都会丢失,系统会变得无法响应。
有人可以告诉我一些在所有情况下都可靠的替代代码吗? 感谢
答案 0 :(得分:1)
您可以检查注册表,例如,您可以尝试阅读此注册表项:
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
这是一个c#代码段,用于在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();