zoukankan      html  css  js  c++  java
  • c#获得目标服务器中所有数据库名、表名、列名的实现代码

        /// <summary>
            /// 获得目标服务器所有数据库名
            /// </summary>
            /// <param name="serverName"></param>
            /// <param name="userName"></param>
            /// <param name="password"></param>
            public void getDataBaseNameList(string serverName, string userName, string password)
            {
                SQLDMO.Application sqlApplication = new SQLDMO.ApplicationClass();
                SQLDMO.SQLServer sqlServer = new SQLDMO.SQLServerClass();
    
                sqlServer.Connect(serverName, userName, password);          // 连接服务器
                foreach (SQLDMO.Database databBase in sqlServer.Databases)
                {
                    if (databBase.Name != null)
                    {
                        this.DataBaseTreeView.Nodes.Add(databBase.Name);
                        getDataBaseTableList(serverName, userName, password, databBase.Name);
                    }
                }
            }
    
            /// <summary>
            /// 加载数据库中表
            /// </summary>
            /// <param name="serverName">服务器名</param>
            /// <param name="userName">用户名</param>
            /// <param name="password">密码</param>
            /// <param name="dataBaseName">数据库名</param>
            private void getDataBaseTableList(string serverName, string userName, string password, string dataBaseName)
            {
                SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
                //连接到服务器 
                Server.Connect(serverName, userName, password);
                //对所有的数据库遍历,获得指定数据库 
                for (int i = 0; i < Server.Databases.Count; i++)
                {
                    //判断当前数据库是否是指定数据库 
                    if (Server.Databases.Item(i + 1, "dbo").Name == dataBaseName)
                    {
                        //获得指定数据库 
                        SQLDMO._Database db = Server.Databases.Item(i + 1, "dbo");
                        //获得指定数据库中的所有表 
                        for (int j = 0; j < db.Tables.Count; j++)
                        {
                            this.DataBaseTreeView.Nodes[i].Nodes.Add(db.Tables.Item(j + 1, "dbo").Name);
                        }
                    }
                }
            }
    
        /// <summary>
            /// 获得表中所有列名
            /// </summary>
            /// <param name="serverName">服务器名</param>
            /// <param name="userName">用户名</param>
            /// <param name="password">密码</param>
            /// <param name="tableName">表名</param>
            /// <param name="dataBaseName">数据库名</param>
            /// <returns></returns>
            public string getRowListFromTable(string serverName, string userName, string password, string tableName, string dataBaseName)
            {
                string result = string.Empty;
                string connectionString = string.Empty;
                connectionString += "server=" + serverName;
                connectionString += ";Pwd=" + password;
                connectionString += ";UID=" + userName;
                connectionString += ";Database=" + dataBaseName;
                string commandString = string.Empty;
                commandString += "select   name   from   syscolumns   where   id=object_id('";
                commandString += tableName;
                commandString += "')";
               
                SqlConnection sqlConnection = new SqlConnection(connectionString);
                SqlCommand sqlCommand = new SqlCommand(commandString, sqlConnection);
                SqlDataAdapter dataAdapter = new SqlDataAdapter(commandString, sqlConnection);
                DataSet dataSet = new DataSet();
                dataAdapter.Fill(dataSet);
                DataTable dataTable = dataSet.Tables[0];
                // DataTable dataTable = sqlConnection.GetSchema("Tables");
                foreach (DataRow row in dataTable.Rows)
                {
                    result += row[0].ToString() + "-";
                }
                if (result != null)
                {
                    return result;  
                }
                else
                {
                    return "0";
                }
            }
  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/rinack/p/4260325.html
Copyright © 2011-2022 走看看