zoukankan      html  css  js  c++  java
  • 获取本地网络中可用的SQL Server实例信息

      .NET中提供了一个SqlDataSourceEnumerator类,使用该类可以很方便的获取本地网络中的所有的可用的SQL Server实例的详细信息。该类位于System.Data.Sql命名空间下。

      SqlDataSourceEnumerator类并没用提供具体的构造函数,但它提供了一个公共/静态属性——Instance,用于检索SqlDataSourceEnumerator类的实例。检索到其实例之后,便可调用其GetDataSources方法,该方法返回包含本地网络中所有可用服务器信息的DataTable。

      使用GetDataSources方法所返回的DataTable包含以下列,并且所有列的值均为string类型。

    说明
    ServerName 服务器的名称。
    InstanceName 服务器实例的名称。 如果服务器作为默认实例运行,则为空白。
    IsClustered 指示服务器是否属于群集。
    Version 服务器的版本(对于 SQL Server 2000,为 8.00.x,对于 SQL Server 2005,为 9.00.x,对于SQL Server 2008,为10.0.0.x)。

      示例:

    using System;
    using System.Data.Sql;
    using System.IO;

    class Program
    {
    static void Main()
    {
    SqlDataSourceEnumerator instance = SqlDataSourceEnumerator.Instance;
    System.Data.DataTable table = instance.GetDataSources();

    DisplayData(table);

    Console.WriteLine("按任意键继续");
    Console.ReadKey();
    }

    private static void DisplayData(System.Data.DataTable table)
    {
    foreach (System.Data.DataRow row in table.Select("Version LIKE '10%'"))
    {
    foreach (System.Data.DataColumn col in table.Columns)
    {
    Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
    }
    Console.WriteLine("============================");
    }
    }
    }

      上述示例显示本地网络中所有可用的SQL Server 2008版本实例详细信息。代码中使用了DataTableSelect方法对SQL Server服务器的版本作了筛选。

      值得一说的是,利用上述代码获取数据库服务器信息并非“十全十美”的。其一,根据网络通信量/通信超时等因素,所获取的数据库服务器实例有可能不完整;其二,取决于获取列表的方式,所获取到的实例信息的详细程度存在差异,通过SQL Server Browser服务列出的数据库服务器比通过Windows基础结构列出的服务器更加详细,后者仅列出服务器名称。所以在用到该功能时,建议开启SQL Server Browser服务

  • 相关阅读:
    卡特兰数
    hdu 1023 Train Problem II
    hdu 1022 Train Problem
    hdu 1021 Fibonacci Again 找规律
    java大数模板
    gcd
    object dection资源
    Rich feature hierarchies for accurate object detection and semantic segmentation(RCNN)
    softmax sigmoid
    凸优化
  • 原文地址:https://www.cnblogs.com/hans_gis/p/2257078.html
Copyright © 2011-2022 走看看