zoukankan      html  css  js  c++  java
  • 获取局域网所有数据库服务器、查询sqlserver非系统数据库、所有表、所有列

            /// <summary>  
            /// 获取局域网内的所有数据库服务器名称  
            /// </summary>  
            /// <returns>服务器名称数组</returns>  
            public List<string> GetSqlServerNames()
            {
                DataTable dataSources = SqlClientFactory.Instance.CreateDataSourceEnumerator().GetDataSources();
    
                DataColumn column = dataSources.Columns["InstanceName"];
                DataColumn column2 = dataSources.Columns["ServerName"];
    
                DataRowCollection rows = dataSources.Rows;
                List<string> Serverlist = new List<string>();
                string array = string.Empty;
                for (int i = 0; i < rows.Count; i++)
                {
                    string str2 = rows[i][column2] as string;
                    string str = rows[i][column] as string;
                    if (((str == null) || (str.Length == 0)) || ("MSSQLSERVER" == str))
                    {
                        array = str2;
                    }
                    else
                    {
                        array = str2 + @"\" + str;
                    }
    
                    Serverlist.Add(array);
                }
    
                Serverlist.Sort();
    
                return Serverlist;
            }
    
            /// <summary>  
            /// 查询sql中的非系统库  
            /// </summary>  
            /// <param name="connection"></param>  
            /// <returns></returns>  
            public List<string> databaseList(string connection)
            {
                List<string> getCataList = new List<string>();
                string cmdStirng = "select name from sys.databases where database_id > 4";
                SqlConnection connect = new SqlConnection(connection);
                SqlCommand cmd = new SqlCommand(cmdStirng, connect);
                try
                {
                    if (connect.State == ConnectionState.Closed)
                    {
                        connect.Open();
                        IDataReader dr = cmd.ExecuteReader();
                        getCataList.Clear();
                        while (dr.Read())
                        {
                            getCataList.Add(dr["name"].ToString());
                        }
                        dr.Close();
                    }
    
                }
                catch (SqlException e)
                {
                    //MessageBox.Show(e.Message);  
                }
                finally
                {
                    if (connect != null && connect.State == ConnectionState.Open)
                    {
                        connect.Dispose();
                    }
                }
                return getCataList;
            }
    
            /// <summary>  
            /// 获取列名  
            /// </summary>  
            /// <param name="connection"></param>  
            /// <returns></returns>  
            public List<string> GetTables(string connection)
            {
                List<string> tablelist = new List<string>();
                SqlConnection objConnetion = new SqlConnection(connection);
                try
                {
                    if (objConnetion.State == ConnectionState.Closed)
                    {
                        objConnetion.Open();
                        DataTable objTable = objConnetion.GetSchema("Tables");
                        foreach (DataRow row in objTable.Rows)
                        {
                            tablelist.Add(row[2].ToString());
                        }
                    }
                }
                catch
                {
    
                }
                finally
                {
                    if (objConnetion != null && objConnetion.State == ConnectionState.Closed)
                    {
                        objConnetion.Dispose();
                    }
    
                }
                return tablelist;
            }
    
            /// <summary>  
            /// 获取字段  
            /// </summary>  
            /// <param name="connection"></param>  
            /// <param name="TableName"></param>  
            /// <returns></returns>  
            public List<string> GetColumnField(string connection, string TableName)
            {
                List<string> Columnlist = new List<string>();
                SqlConnection objConnetion = new SqlConnection(connection);
                try
                {
                    if (objConnetion.State == ConnectionState.Closed)
                    {
                        objConnetion.Open();
                    }
    
                    SqlCommand cmd = new SqlCommand("Select Name FROM SysColumns Where id=Object_Id('" + TableName + "')", objConnetion);
                    SqlDataReader objReader = cmd.ExecuteReader();
    
                    while (objReader.Read())
                    {
                        Columnlist.Add(objReader[0].ToString());
    
                    }
                }
                catch
                {
    
                }
                objConnetion.Close();
                return Columnlist;
            }
  • 相关阅读:
    Dev C++ 工程没有调试信息 解决办法
    写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。
    oracle10g登录em后,提示“java.lang.Exception: Exception in sending Request :: null”
    网站登录的破解
    sql 日志恢复
    Oracle expdp/impdp 使用示例
    Oracle数据库备份和恢复的基本命令
    检索 COM 类工厂中 CLSID 为 {{10020200-E260-11CF-AE68-00AA004A34D5}} 的组件时失败解决办法
    win7访问部分win2003速度慢
    公交车路线查询系统后台数据库设计--换乘算法改进与优化
  • 原文地址:https://www.cnblogs.com/xiaocaibaodao/p/2793043.html
Copyright © 2011-2022 走看看