可能重复:
How to list available instances of SQL Servers using SMO in C#?
我正在编写一个快速应用程序,用于向用户显示他或她可以选择连接到SQL Server数据库的服务器名称/实例列表。基本上我试图将这些选项填充到组合框中,组合框应该有类似的选项:
我已经通过ADO.NET成功获得了与服务器相对应的数据库及其各自的表。但是,我找不到任何允许我检索上述数据的代码示例。
答案 0 :(得分:5)
您可以使用SMO:
- 只需将Microsoft.SqlServer.Smo.dll程序集(您可以在Program Files \ Microsoft SQL Server \ 100 \ SDK \ Assemblies SQL SERVER 2008中找到它)添加到项目资源中。
- 您始终可以参考{{ 3}}。
- 这是你需要的功能:
SmoApplication.EnumAvailableSqlServers();
答案 1 :(得分:1)
执行此操作的一种方法是使用SQL Browser服务。您可以使用SqlDataSourceEnumerator
枚举所有运行SQL浏览器服务的SQL Server实例。
GetDataSources
方法将返回可用实例的DataTable。 MSDN Documentation也提供了一个代码示例。
这与SQL Server Management Studio用于在连接对话框中填充其服务器下拉列表的机制相同。
答案 2 :(得分:-1)
执行此操作的方法是使用尝试连接到所有服务器的服务。如果连接失败,您知道服务器处于脱机状态,而不是将该服务器作为可行选项发布。