分析C#调用COM对象

开发 后端
这里介绍C#调用COM对象,包括介绍SQLDMO.dll自身是一个COM对象,因此 ,在你的.NET项目里必须先引用它,VS.NET集成开发环境会创建所有必要的对COM的封装。

C#调用COM对象

我们曾经在以前的应用中多次需要得到SQL Server的详细信息,过去,我们必须使用API和效率低下的ADO的调用才能得到,现在,我们有了一个新的方法,就是SQLDMO(SQL Distributed Management Objects,SQL分布式管 理对象),尽管它目前还不被人所知和使用,但是SQLDMO提供了许多强有力的、和利用代码从SQL Server获得 信息相类似的许多功能,为举例方便,这里仅向您解释如何得到本地网络的SQL Server列表,如何去连接每 个SQL Server,以及如何得到Server中的表、存储过程和视图的列表。

SQLDMO对象来自SQLDMO.dll,SQLDMO.dll是随SQL Server2000一起发布的。SQLDMO.dll自身是一个COM对象,因此 ,在你的.NET项目里必须先引用它,VS.NET集成开发环境会创建所有必要的对COM的封装。注意:如果你使用“ using SQLDMO;”语句来引用的话,你将会得到一个错误信息。

C#调用COM对象之后,你就可以很容易地使用它了。

本例子中的所有操作都使用以下的一个或几个对象:
◆SQLDMO.Application
◆SQLDMO.SQLServer
◆SQLDMO.Database
◆SQLDMO.NameList
象数据备份和恢复这样的操作都有许多对象可以使用,但作为例子,我们会尽量简单,使你轻松进 入SQLDMO的世界来浏览一下它的方便性。

列出本地网络中可使用的SQL服务器相对来说比较简单,首先,你需要引用SQLDMO.Application对象,其次,你必须建立一个SQLDMO.Application.ListAvailableSQLServers()方法的返回值的实例SQLDMO.NameList,SQLDMO.NameList是服务器名字的COM集合。

请记住:在你习惯了C#调用COM对象之前,C#调用COM对象总是令人感到可怕的,但习惯了就会好的。下面 是一些示例代码,它利用本地可使用的SQL服务器的列表来填充下拉列表框。

  1. SQLDMO.ApplicationsqlApp=newSQLDMO.ApplicationClass();  
  2. SQLDMO.NameListsqlServers=sqlApp.ListAvailableSQLServers();  
  3. for(inti=0;i<sqlServers.Count;i++)  
  4. {  
  5. objectsrv=sqlServers.Item(i+1);  
  6. if(srv!=null)  
  7. {  
  8. this.cboServers.Items.Add(srv);  
  9. }  
  10. }  
  11. if(this.cboServers.Items.Count>0)  
  12. this.cboServers.SelectedIndex=0;  
  13. else  
  14. this.cboServers.Text="<NoavailableSQLServers>";  
  15. //得到指定SQL服务器所有数据库的列表  
  16. SQLDMO.ApplicationsqlApp=newSQLDMO.ApplicationClass();  
  17. SQLDMO.SQLServersrv=newSQLDMO.SQLServerClass();  
  18. srv.Connect(this.cboServers.SelectedItem.ToString(),
  19. this.txtUser.Text,this.txtPassword.Text);  
  20. foreach(SQLDMO.Databasedbinsrv.Databases)  
  21. {  
  22. if(db.Name!=null)  
  23. this.cboDatabase.Items.Add(db.Name);  

【编辑推荐】

  1. 如何用C#和ADO.NET访问
  2. 浅析C# Switch语句
  3. C#验证输入方法详解
  4. 简单介绍C# 匿名方法
  5. C# FileSystemWatcher对象
责任编辑:佚名 来源: MSDN社区
相关推荐

2009-08-03 11:32:49

C#调用COM对象

2009-08-05 15:10:19

C#调用GoogleE

2009-08-10 13:40:46

创建C# COM对象

2009-09-02 16:43:55

C#调用Excel的C

2009-08-10 13:34:11

创建C# COM对象

2009-09-24 15:10:54

C#调用COM组件

2009-08-26 10:34:59

C# Hashtabl

2009-09-02 16:36:37

C#调用Excel对象

2009-09-18 19:09:41

C# COM组件

2009-09-04 14:01:30

C#存储BLOB对象

2009-09-01 10:58:46

C#匿名类型对象

2009-08-28 09:25:59

C#查看Excel对象

2009-08-19 14:35:12

C++和C#相互调用C

2009-08-17 13:49:20

C#中调用Window

2009-09-02 14:18:08

C#声明COM接口

2009-08-20 11:03:34

Visual C#使用

2009-08-03 14:36:08

c#组件

2009-08-17 16:18:47

C#调用CreateO

2009-08-11 10:12:21

2009-08-10 14:03:08

C# COM接口
点赞
收藏

51CTO技术栈公众号