• C#获得网络中所有SQL Server服务器数据库名称


    转载于http://blog.csdn.net/hzjsoft2003/article/details/6186853

    region   得到所有本地网络中可使用的SQL服务器列表
    ///   <summary>
    ///   得到所有本地网络中可使用的SQL服务器列表
    ///   </summary>
    ///   <param   name= "p_strServerList "> 服务器列表 </param>
    ///   <returns> </returns>
    public   static   bool   GetServers(ref   string   []   p_strServerList)
    {
           try
          {
                SQLDMO.Application   sqlApp   =   new   SQLDMO.ApplicationClass();  
                SQLDMO.NameList   sqlServers   =   sqlApp.ListAvailableSQLServers();  
                if(sqlServers.Count   >   0)
                {
                     p_strServerList   =   new   string[sqlServers.Count];
                     for(int   i=0;i <sqlServers.Count;i++)  
                    {  
                        string   srv   =   sqlServers.Item(i   +   1);  
                        if(srv   !=   null)  
                       {  
                           p_strServerList[i]   =   srv;                                                  
                       }  
                   }   
               }
              return   true;
         }
         catch(Exception   ex)
         {
              throw   ex;
         }
    }

    #endregion

    #region   得到指定SQL服务器所有数据库的列表
    ///   <summary>
    ///   得到指定SQL服务器所有数据库的列表
    ///   </summary>
    ///   <param   name= "p_strDataBaseList "> 数据库列表 </param>
    ///   <param   name= "p_strServer "> 服务器名 </param>
    ///   <param   name= "p_strUser "> 用户名 </param>
    ///   <param   name= "p_strPWD "> 密码 </param>
    ///   <returns> </returns>
    public   static   bool   GetDataBases(ref   string   []   p_strDataBaseList,   string   p_strServer,   string   p_strUser,   string   p_strPWD)
    {
          try
         {
              int   i   =   0;

              SQLDMO.Application   sqlApp   =   new   SQLDMO.ApplicationClass();  
              SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();                                  
              srv.Connect(p_strServer,p_strUser,p_strPWD);   

              if(srv.Databases.Count   >   0)
             {
                 p_strDataBaseList   =   new   string[srv.Databases.Count];

                 foreach(SQLDMO.Database   db   in   srv.Databases)  
                {  
                     if(db.Name!=null)  
                    {
                         p_strDataBaseList[i]   =   db.Name;
                    }
                    i   =   i   +   1;
               }
            }
            return   true; 
       } 
       catch(Exception   ex)
       {
             throw   ex;
        }
    }

    #endregion

    #region   得到所有的存储过程
    ///   <summary>
    ///   得到所有的存储过程
    ///   </summary>
    ///   <param   name= "p_strProcedureList "> 存储过程列表 </param>
    ///   <param   name= "p_strServer "> 服务器名 </param>
    ///   <param   name= "p_strUser "> 用户名 </param>
    ///   <param   name= "p_strPWD "> 密码 </param>
    ///   <param   name= "p_strDataBase "> 数据库名 </param>
    ///   <returns> </returns>
    public   static   bool   GetProcedures(ref   string   []   p_strProcedureList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)
    {
           try
          {
                SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();                                   
                srv.Connect(p_strServer,p_strUser,p_strPWD);  

                for(int   i=0;i <srv.Databases.Count;i++)  
               {  
                    if(srv.Databases.Item(i+1, "dbo ").Name   ==   p_strDataBase)  
                    {  
                         SQLDMO._Database   db=   srv.Databases.Item(i+1, "dbo ");  
                         if   (db.StoredProcedures.Count   >   0)
                        {
                             p_strProcedureList   =   new   string[db.StoredProcedures.Count];

                             for(int   j=0;j <db.StoredProcedures.Count;j++)  
                             {  
                                 p_strProcedureList[j]   =   db.StoredProcedures.Item(j+1, "dbo ").Name;  
                             }  
                             break;  
                        }  
                  }
             }

            return   true;
       }
       catch(Exception   ex)
       {
            throw   ex;
        }
    }
    #endregion

    #region   得到所有的Tables集合
    ///   <summary>
    ///   得到所有的Tables集合
    ///   </summary>
    ///   <param   name= "p_strProcedureList "> Tables集合 </param>
    ///   <param   name= "p_strServer "> 服务器名 </param>
    ///   <param   name= "p_strUser "> 用户名 </param>
    ///   <param   name= "p_strPWD "> 密码 </param>
    ///   <param   name= "p_strDataBase "> 数据库名 </param>
    ///   <returns> </returns>
    public   static   bool   GetTables(ref   string   []   p_strTableList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)

          try
          {
                SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();                                   
                srv.Connect(p_strServer,p_strUser,p_strPWD);   

                for(int   i=0;i <srv.Databases.Count;i++)  
                {  
                     if(srv.Databases.Item(i+1, "dbo ").Name   ==   p_strDataBase)  
                     {  
                          SQLDMO._Database   db=   srv.Databases.Item(i+1, "dbo ");  
                          if   (db.Tables.Count   >   0)
                          { 
                               p_strTableList   =   new   string[db.Tables.Count];

                               for(int   j=0;j <db.Tables.Count;j++)  
                              {  
                                   p_strTableList[j]   =   db.Tables.Item(j+1, "dbo ").Name;  
                              }  
                              break;  
                         }  
                   }
             }

             return   true; 
         }
         catch(Exception   ex)
         {
             throw   ex; 
         }
    }
    #endregion

    #region   得到所有的Views集合
    ///   <summary>
    ///   得到所有的Views集合
    ///   </summary>
    ///   <param   name= "p_strProcedureList "> Views集合 </param>
    ///   <param   name= "p_strServer "> 服务器名 </param>
    ///   <param   name= "p_strUser "> 用户名 </param>
    ///   <param   name= "p_strPWD "> 密码 </param>
    ///   <param   name= "p_strDataBase "> 数据库名 </param>
    ///   <returns> </returns>
    public   static   bool   GetViews(ref   string   []   p_strViewList,   string   p_strServer,   string   p_strUser,   string   p_strPWD,   string   p_strDataBase)
    {
         try
         {
              SQLDMO.SQLServer   srv   =   new   SQLDMO.SQLServerClass();                                  
              srv.Connect(p_strServer,p_strUser,p_strPWD);  

              for(int   i=0;i <srv.Databases.Count;i++)  
             {  
                  if(srv.Databases.Item(i+1, "dbo ").Name   ==   p_strDataBase)  
                  {  
                       SQLDMO._Database   db=   srv.Databases.Item(i+1, "dbo ");  
                       if   (db.Views.Count   >   0)
                       {
                            p_strViewList   =   new   string[db.Views.Count];

                            for(int   j=0;j <db.Views.Count;j++)  
                            {  
                                 p_strViewList[j]   =   db.Views.Item(j+1, "dbo ").Name;   
                            }  
                            break;  
                      }  
               }
          }

          return   true;
       }
       catch(Exception   ex)
       {
            throw   ex;
        }
    }
    #endregion

  • 相关阅读:
    DB2
    Data Queue
    QMQY
    CMD(SA400 Command)
    Software development process
    CSS display样式
    CSS行高line-height解释
    CS和CS3知识点
    HTML图片<img>标签空白解决方法
    CS清除浮动
  • 原文地址:https://www.cnblogs.com/ajun/p/2511671.html
Copyright © 2020-2023  润新知