日期:2014-05-18  浏览次数:20789 次

获取局域网中SQL SERVER服务器
客户机上没有安装SQL SERVER我用
private string[] Getallservers()
  {
  string[] servers;
  SQLDMO.NameList num;
  SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
  num = rs.ListAvailableSQLServers();
  servers = new string[num.Count];
  for (int i = 1; i <= num.Count; i++)
  {
  servers[i - 1] = num.Item(i);
  }
  return servers;

  } 
这种方法是不行的, 在SQLDMO.ApplicationClass rs = new SQLDMO.ApplicationClass();
处会出错的,可能是客户机上没有安装SQL SERVER的缘故,有没有那种办法可以实现?

------解决方案--------------------
下面的控制台应用程序显示本地网络内的所有可用 SQL Server 2005 实例的列表。该代码使用 Select 方法筛选 GetDataSources 方法返回的表中的行。

C# code

using System.Data.Sql;

class Program
{
  static void Main()
  {
    // Retrieve the enumerator instance, and
    // then retrieve the data sources.
    SqlDataSourceEnumerator instance =
      SqlDataSourceEnumerator.Instance;
    System.Data.DataTable table = instance.GetDataSources();

    // Filter the sources to just show SQL Server 2005 instances.
    System.Data.DataRow[] rows = table.Select("Version LIKE '9%'");
    foreach (System.Data.DataRow row in rows)
    {
      Console.WriteLine(row["ServerName"]);
    }
    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
  }
}