关于C#中使用SQLDMO来获取数据库中的一些操作

首先添加SQLDMO的引用

 

1:通过SQLDMO来获取可用的网络数据库(区域网当中)

public static List<string> get可用SQL服务器()
      {
          SQLDMO.Application app = new SQLDMO.Application();
          SQLDMO.NameList lst可用SQLServer服务器 = app.ListAvailableSQLServers();
          List<string> lst = new List<string>();
          for (int i = 1; i <= lst可用SQLServer服务器.Count; i++)
          {
              string str = lst可用SQLServer服务器.Item(i);
              lst.Add(str);
          }
          return lst;
      }

 

2.使用SQLDMO来获取数据库当中的所有表

public static List<string> get数据库所有表(string strServerName, string strDatabase, string strUserID, string strPwd)
     {
         SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
         List<string> lst = null;
         //连接到服务器
         try
         {
             Server.Connect(strServerName, strUserID, strPwd);

             //对所有的数据库遍历,获得指定数据库

             for (int i = 0; i < Server.Databases.Count; i++)
             {
                 //判断当前数据库是否是指定数据库
                 if (Server.Databases.Item(i + 1).Name == strDatabase)
                 {
                     lst = new List<string>();
                     //获得指定数据库
                     SQLDMO._Database db = Server.Databases.Item(i + 1);

                     //获得指定数据库中的所有表
                     for (int j = 0; j < db.Tables.Count; j++)
                     {
                         lst.Add(db.Tables.Item(j + 1).Name);
                     }
                 }
             }
         }
         catch
         {
             MessageBox.Show("获取失败");
         }
         return lst;
     }

3.使用SQLDMO来获取数据库当中的指定表的所有列

public static List<string> get数据库表中列(string strServerName, string strDatabase, string strUserID, string strPwd,string str表名)
       {
           SQLDMO.SQLServer Server = new SQLDMO.SQLServerClass();
           List<string> lst = null;
           //连接到服务器
           try
           {
               Server.Connect(strServerName, strUserID, strPwd);

               //对所有的数据库遍历,获得指定数据库

               for (int i = 0; i < Server.Databases.Count; i++)
               {
                   //判断当前数据库是否是指定数据库
                   if (Server.Databases.Item(i + 1).Name == strDatabase)
                   {
                       lst = new List<string>();
                       //获得指定数据库
                       SQLDMO._Database db = Server.Databases.Item(i + 1);

                       //获得指定数据库中的所有表
                       for (int j = 0; j < db.Tables.Count; j++)
                       {
                           //lst.Add(db.Tables.Item(j + 1).Name);
                           if (db.Tables.Item(j + 1).Name == str表名)
                           {
                               foreach (SQLDMO._Column item in db.Tables.Item(j + 1).Columns)
                               {
                                   lst.Add(item.Name);
                               }
                           }
                       }
                   }
               }
           }
           catch
           {
               MessageBox.Show("获取失败");
           }
           return lst;
       }

posted on 2010-12-21 10:11  guoxuefeng  阅读(496)  评论(0编辑  收藏  举报