官方的做法是这样的:

  1. using System.Data.Sql;  
  2.  
  3. class Program  
  4. {  
  5.   static void Main()  
  6.   {  
  7.     // Retrieve the enumerator instance and then the data.  
  8.     SqlDataSourceEnumerator instance =  
  9.       SqlDataSourceEnumerator.Instance;  
  10.     System.Data.DataTable table = instance.GetDataSources();  
  11.  
  12.     // Display the contents of the table.  
  13.     DisplayData(table);  
  14.  
  15.     Console.WriteLine("Press any key to continue.");  
  16.     Console.ReadKey();  
  17.   }  
  18.  
  19.   private static void DisplayData(System.Data.DataTable table)  
  20.   {  
  21.     foreach (System.Data.DataRow row in table.Rows)  
  22.     {  
  23.       foreach (System.Data.DataColumn col in table.Columns)  
  24.       {  
  25.         Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);  
  26.       }  
  27.       Console.WriteLine("============================");  
  28.     }  
  29.   }  

来源于:http://msdn.microsoft.com/en-us/library/system.data.sql.sqldatasourceenumerator.getdatasources.aspx

请看遇到的问题及解决方法:

 

解析c#得到局域网内所有sqlserver数据库实例_数据库 

实际上问题就是,得到的结果只有服务器名字,但由于是默认实例,所以并没有实例名字。而且,假如安装的是sqlserver,则连接数据库是必须是 服务器\sqlexpress(默认实例名称);假如安装的是完整版的sqlexpress,则只需 服务器 即可连接。这就造成了不少问题。 上边百度给出比较好的解决方法。