解析c#得到局域网内所有sqlserver数据库实例-阿里云开发者社区

开发者社区> 数据库> 正文
登录阅读全文

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

简介:

官方的做法是这样的:


  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

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

 

 

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

 


本文转自 huohe2009 51CTO博客,原文链接:http://blog.51cto.com/zhaojie/932275


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: