
 
 | 
| 技术资料  > .Net专区 > 数据库应用 : 使用SQLDMO从SQL Server中获取信息 |  
使用SQLDMO从SQL Server中获取信息 March 25,2004 |  
提要: 
ms sql server提供了一个非常方便的COM组件“SQLDMO”来帮助我们获取和管理SQL Server。在这里提供一些想法和实现。 
系统要求: 
windows2000server 
vs.net rc3 
sql server 2000 
正文: 
1.在.NET中使用sqldmo.dll 
path :>tlbimp sqldmo.dll /out : rc3sqldmo.dll 
创建一个新的C#项目(winform, library....),添加引用,选择Browse,找到rc3sqldmo.dll,加入。 
2.查看rc3sqldmo.dll的结构 
打开object view,选择rc3sqldmo,你能浏览所有的属性、方法和事件的定义。 
3.使用rc3sqldmo 
    获得连接: 
            rc3sqldmo.sqlserver2 mysqlsvr = new rc3sqldmo.sqlserver2class(); 
 
 
mysqlsvr .connect("sqlservername","uid","pws"); 
 
    获得数据库信息: 
 
rc3sqldmo.databases mydbs=mysqlsvr.databases; 
rc3sqldmo.database2 mydb =new rc3sqldmo.database2class(); 
mydb=mydbs.item("dbname","owner"); 或mydb=mysqlsvr.databases.item("dbname","owner"); 
 
   获得表和字段的信息: 
 
rc3sqldmo.Tables mytbls= mysqlsvr.databases.item("dbname","owner").tables; 
rc3sqldmo.table2 mytbl = new rc3sqldmo.table2class(); 
mytbl = mytbls.item("tablename","owner");或 
mytbl = mysqlsvr.databases.item("dbname","owner").tables.item("tablename","owner"); 
string[3] mylist = new string[3]; 
rc3sqldmo.column2 myfield = new rc3sqldmo.column2class(); 
foreach(object o in mytbl.columns) 
{    
        myfield = (rc3sqldmo.column2) o; 
        mylist[0]=myfield.name; 
       mylist[1] = myfield.datatype; 
      mylist[2] =myfield.length.tostring(); 
}  
 
获得存储过程的信息:: 
 
 
rc3sqldmo.storedprecudure2 mysp = new rc3sqldmo.storedprecudure2class(); 
mysp =mysqlsvr.batabase.itrm("dbname",owner).storedprecudures.item[B("spname",owner)] 
 
用途的讨论:: 
 
动态管理sql server 
动态获得table,storedprecudure的结构信息 
还能增加,修改所有sql server object的内容。 
         |  
 
 | 
  
Copyright © 2001-2008 Shenzhen Hiblue Software Team All rights reserved