C# – Enumerate SQL Server

C# - 查詢目前所有資料庫

之前曾經寫過一篇 Data Connection Dialog (Connection Wizard) 利用.NET內建的資料庫連線視窗來選取連線字串。雖然選擇的時候可以不選資料庫(例:挑選要附加資料庫的Server),可是沒辦法隱藏選擇資料庫的介面。

所以我想要自己做一個挑選資料庫的功能~

 

在內建的System.Data.Sql就有提供這樣的函式,可是前提是該資料庫的SQL Browser要啟動服務:

SNAGHTML664c7c

 

MSDN有提供範例程式:Enumerating Instances of SQL Server (ADO.NET) ,可以直接把他轉成DataTable來使用。



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

    // Display the contents of the table.
    DisplayData(table);

    Console.WriteLine("Press any key to continue.");
    Console.ReadKey();
  }

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

 

執行結果:(我的電腦裝的是SQL Server 2008 SP2)

SNAGHTML6784e9

接下來就可以利用ServerName及InstanceName來組連線字串啦!

 

Dotblogs 的標籤: ,