C# 如何通过C检索所有可能的服务器名称#

C# 如何通过C检索所有可能的服务器名称#,c#,.net,sql,sql-server,ado.net,C#,.net,Sql,Sql Server,Ado.net,可能重复: 我正在编写一个快速应用程序,它向用户提供一个服务器名称/实例列表,用户可以从中选择连接到SQL server数据库。基本上,我正在尝试将这些选项填充到一个组合框中,该组合框应具有与以下类似的选项: (本地) Joe PC\SQLEXPRESS 等等 我已经通过ADO.NET成功地获得了服务器对应的数据库及其相应的表。但是,我找不到任何允许我检索上述数据的代码示例。一种方法是使用SQL浏览器服务。可以使用枚举正在运行SQL Browser服务的所有SQL server实例 Get

可能重复:

我正在编写一个快速应用程序,它向用户提供一个服务器名称/实例列表,用户可以从中选择连接到SQL server数据库。基本上,我正在尝试将这些选项填充到一个组合框中,该组合框应具有与以下类似的选项:

  • (本地)
  • Joe PC\SQLEXPRESS
  • 等等

我已经通过ADO.NET成功地获得了服务器对应的数据库及其相应的表。但是,我找不到任何允许我检索上述数据的代码示例。

一种方法是使用SQL浏览器服务。可以使用枚举正在运行SQL Browser服务的所有SQL server实例

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


这与SQL Server Management Studio在“连接”对话框上填充其“服务器”下拉列表时使用的机制相同。

最糟糕的方法是使用一个尝试连接到所有服务器的服务。如果连接失败,您知道服务器处于脱机状态,不将该服务器发布为可行选项。

您可以使用:

-只需将Microsoft.SqlServer.Smo.dll程序集(您可以在Program Files\Microsoft SQL Server\100\SDK\Assemblys SQL Server 2008中找到)添加到您的项目资源中即可。
您可以随时参考。
以下是您需要的函数:

SmoApplication.EnumAvailableSqlServers();

这会有帮助吗?但这主要是我们使用SQLServer管理对象(SMO)API实现的特定SQLServer的实例。。。试着用它来搜索例子。我会尝试一下,谢谢!别忘了把它放在后台工作程序中,否则应用程序在寻找实例时会很糟糕。为什么,这是一个持续的过程?它不是在被调用时只执行一次吗?枚举服务器实际上需要一点时间。进程运行时,可以在不确定状态下显示进度条。