C#用SQLDMO操作数据库----转载

C#用SQLDMO操作数据库

 

sqldmo.dll是随sql server2000一起发布的。sqldmo.dll自身是一个com对象

sqldmo(sql distributed management objects,sql分布式管理对象)封装 microsoft sql server 2000 数据库中的对象。sql-dmo 允许用支持 自动化或 com 的语言编写 应用程序,以管理 sql server 安装的所有部分。sql-dmo 是 sql server 2000 中的 sql server 企业管理器所使用的 应用程序接口 (api);因此使用 sql-dmo 的 应用程序可以执行 sql server 企业管理器执行的所有功能。
------
sqlserver的大致关系:
application-->sqlserver-->database
------
实例sqldmo,主要用到的是其中的以下几个类:
sqldmo.application(使用 sqldmo.applicationclass创建)、
sqldmo.sqlserver(使用sqldmo.sqlserverclass创建,主要用到它的connect来连接 数据库服务器)、
sqldmo.namelist(可以通过它和application获取服务器集合,其它的请看其api)
sqldmo.database(可以通过它和sqlserver.databases获取 数据库集合)

示例一:获取局域网内sql服务器列表
主要用到application的listavaiablesqlservers来获取namelist,

 1  sqldmo.application sqlapp  =   new  sqldmo.applicationclass();
 2         sqldmo.namelist names  =  sqlapp.listavailablesqlservers();
 3         serverlist.items.clear();
 4          for ( int  i = 1 ;i < names.count;i ++ )
 5          {
 6            if(names.item(i)!=null)
 7                serverlist.items.add(names.item(i));
 8        }
 9          if (serverlist.items.count > 0 )
10          {
11            serverlist.selectedindex = 1;
12        }
13          else
14          {
15            serverlist.text = "没有可用的sql服务器";
16        }       


示例二:获取某个服务器下的 数据库列表:
主要用到sqlserver以及其属性databases

 1
 2         sqldmo.sqlserver database =   new  sqlserverclass();
 3          try
 4          {
 5            database.connect(serverlist.selecteditem.text, "sa""");
 6            databaselist.items.clear();
 7            foreach (sqldmo.database db in database.databases)
 8            {
 9                databaselist.items.add(db.name);
10            }
11        }
12          catch  (system.exception ee)
13          {
14            databaselist.items.clear();
15            databaselist.items.add("无法连接所选服务器");
16        }


然后获取 数据库的属性等就是手到拿来了。。。

猜你喜欢

转载自www.cnblogs.com/bedfly/p/12208505.html