漂流的人
年轻就要多折腾!
  1. using System.Data.SqlClient;  
  2.   
  3.         /// <summary>  
  4.           /// 获取局域网内的所有数据库服务器名称  
  5.          /// </summary>  
  6.         /// <returns>服务器名称数组</returns>  
  7.         public List<string> GetSqlServerNames()  
  8.         {  
  9.             DataTable dataSources = SqlClientFactory.Instance.CreateDataSourceEnumerator().GetDataSources();  
  10.   
  11.             DataColumn column = dataSources.Columns["InstanceName"];  
  12.             DataColumn column2 = dataSources.Columns["ServerName"];  
  13.   
  14.             DataRowCollection rows = dataSources.Rows;  
  15.             List<string> Serverlist = new List<string>();  
  16.             string array = string.Empty;  
  17.             for (int i = 0; i < rows.Count; i++)  
  18.             {  
  19.                 string str2 = rows[i][column2] as string;  
  20.                 string str = rows[i][column] as string;  
  21.                 if (((str == null) || (str.Length == 0)) || ("MSSQLSERVER" == str))  
  22.                 {  
  23.                     array = str2;  
  24.                 }  
  25.                 else  
  26.                 {  
  27.                     array = str2 + @"/" + str;  
  28.                 }  
  29.   
  30.                 Serverlist.Add(array);  
  31.             }  
  32.   
  33.             Serverlist.Sort();  
  34.   
  35.             return Serverlist;  
  36.         }  
  37.   
  38.         /// <summary>  
  39.         /// 查询sql中的非系统库  
  40.         /// </summary>  
  41.         /// <param name="connection"></param>  
  42.         /// <returns></returns>  
  43.         public List<string> databaseList(string connection)  
  44.         {  
  45.             List<string> getCataList = new List<string>();  
  46.             string cmdStirng = "select name from sys.databases where database_id > 4";  
  47.             SqlConnection connect = new SqlConnection(connection);  
  48.             SqlCommand cmd = new SqlCommand(cmdStirng, connect);  
  49.             try  
  50.             {  
  51.                 if (connect.State == ConnectionState.Closed)  
  52.                 {  
  53.                     connect.Open();  
  54.                     IDataReader dr = cmd.ExecuteReader();  
  55.                     getCataList.Clear();  
  56.                     while (dr.Read())  
  57.                     {  
  58.                         getCataList.Add(dr["name"].ToString());  
  59.                     }  
  60.                     dr.Close();  
  61.                 }  
  62.   
  63.             }  
  64.             catch (SqlException e)  
  65.             {  
  66.                 //MessageBox.Show(e.Message);  
  67.             }  
  68.             finally  
  69.             {  
  70.                 if (connect != null && connect.State == ConnectionState.Open)  
  71.                 {  
  72.                     connect.Dispose();  
  73.                 }  
  74.             }  
  75.             return getCataList;  
  76.         }  
  77.   
  78.         /// <summary>  
  79.         /// 获取列名  
  80.         /// </summary>  
  81.         /// <param name="connection"></param>  
  82.         /// <returns></returns>  
  83.         public List<string> GetTables(string connection)  
  84.         {  
  85.             List<string> tablelist = new List<string>();  
  86.             SqlConnection objConnetion = new SqlConnection(connection);  
  87.             try  
  88.             {  
  89.                 if (objConnetion.State == ConnectionState.Closed)  
  90.                 {  
  91.                     objConnetion.Open();  
  92.                     DataTable objTable = objConnetion.GetSchema("Tables");  
  93.                     foreach (DataRow row in objTable.Rows)  
  94.                     {  
  95.                         tablelist.Add(row[2].ToString());  
  96.                     }  
  97.                 }  
  98.             }  
  99.             catch  
  100.             {  
  101.   
  102.             }  
  103.             finally  
  104.             {  
  105.                 if (objConnetion != null && objConnetion.State == ConnectionState.Closed)  
  106.                 {  
  107.                     objConnetion.Dispose();  
  108.                 }  
  109.   
  110.             }  
  111.             return tablelist;  
  112.         }  
  113.   
  114.         /// <summary>  
  115.         /// 获取字段  
  116.         /// </summary>  
  117.         /// <param name="connection"></param>  
  118.         /// <param name="TableName"></param>  
  119.         /// <returns></returns>  
  120.         public List<string> GetColumnField(string connection, string TableName)  
  121.         {  
  122.             List<string> Columnlist = new List<string>();  
  123.             SqlConnection objConnetion = new SqlConnection(connection);  
  124.             try  
  125.             {  
  126.                 if (objConnetion.State == ConnectionState.Closed)  
  127.                 {  
  128.                     objConnetion.Open();  
  129.                 }  
  130.   
  131.                 SqlCommand cmd = new SqlCommand("Select Name FROM SysColumns Where id=Object_Id('" + TableName + "')", objConnetion);  
  132.                 SqlDataReader objReader = cmd.ExecuteReader();  
  133.   
  134.                 while (objReader.Read())  
  135.                 {  
  136.                     Columnlist.Add(objReader[0].ToString());  
  137.   
  138.                 }  
  139.             }  
  140.             catch  
  141.             {  
  142.   
  143.             }  
  144.             objConnetion.Close();  
  145.             return Columnlist;
  146.        }  
posted on 2012-11-28 17:44  漂流的人  阅读(457)  评论(0编辑  收藏  举报