3

可能重复:
如何在 C# 中使用 SMO 列出可用的 SQL Server 实例?

我正在编写一个快速应用程序,该应用程序向用户显示他或她可以选择连接到 SQL Server 数据库的服务器名称/实例列表。基本上我试图将这些选项填充到一个组合框中,它应该有类似于这些的选项:

  • (当地的)
  • 乔-PC\SQLEXPRESS
  • 等等

我已经通过ADO.NET成功获取了一个服务器对应的数据库,以及它们各自的表。但是,我找不到任何允许我检索上述数据的代码示例。

4

3 回答 3

5

您可以使用SMO

- 只需将 Microsoft.SqlServer.Smo.dll 程序集(您可以在 Program Files\Microsoft SQL Server\100\SDK\Assemblies SQL SERVER 2008 中找到它)添加到您的项目资源中。
- 您可以随时参考MSDN
- 这是您需要的功能:

SmoApplication.EnumAvailableSqlServers();
于 2012-10-11T13:18:28.960 回答
1

一种方法是使用 SQL Browser 服务。您可以使用SqlDataSourceEnumerator枚举所有运行 SQL Browser 服务的 SQL Server 实例。

GetDataSources方法将返回可用实例的 DataTable。MSDN 文档也提供了一个代码示例。

这与 SQL Server Management Studio 将用于在连接对话框中填充其服务器下拉列表的机制相同。

于 2012-10-11T13:16:29.497 回答
-1

这样做的肮脏方法是拥有一个尝试连接到所有服务器的服务。如果连接失败,您知道服务器处于脱机状态,并且不将该服务器作为可行选项发布。

于 2012-10-11T13:18:18.683 回答