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

#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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值