VB.NET中使用SQL Server分布式管理对象(SQL-DMO)
2006-07-28 22:33
483 查看
参考 http://dotnet.aspx.cc/ShowDetail.aspx?id=BCEAADFB-CFF3-4804-B3B3-6C7D6488982B#
我们曾经在以前的应用中多次需要得到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;”语句来引用的话,你将会得到一个错误信息。要让它在你的应用程序里正常工作,你必须按下图 去引用它:
引用了COM对象之后,你就可以很容易地使用它了。
本例子中的所有操作都使用以下的一个或几个对象:
SQLDMO.Application
SQLDMO.SQLServer
SQLDMO.Database
SQLDMO.NameList
象数据备份和恢复这样的操作都有许多对象可以使用,但作为例子,我们会尽量简单,使你轻松进 入SQLDMO的世界来浏览一下它的方便性。
列出本地网络中可使用的SQL服务器相对来说比较简单,首先,你需要引用SQLDMO.Application对象,其 次,你必须建立一个SQLDMO.Application.ListAvailableSQLServers()方法的返回值的实 例SQLDMO.NameList,SQLDMO.NameList是服务器名字的COM集合。
请记住:在你习惯了调用COM对象之前,调用COM对象总是令人感到可怕的,但习惯了就会好的。下面 是一些示例代码,它利用本地可使用的SQL服务器的列表来填充下拉列表框。
'得到所有本地网络中可使用的SQL服务器列表。
Me.CBoxSer.Items.Clear()
Dim sqlApp As New SQLDMO.ApplicationClass
Dim sqlServers As SQLDMO.NameList = sqlApp.ListAvailableSQLServers
Dim i As Int16 = 0
Dim obj As Object
For i = 0 To sqlServers.Count - 1
obj = sqlServers.Item(i)
If Not obj Is Nothing Then
Me.CBoxSer.Items.Add(obj)
End If
Next
正如前面所讲的,是不是很简单?请记住:COM集合的第一个项目是1,而不是0。
连接数据库并得到所有数据库的列表也是相当简单的。下面的代码采用上面下拉列表框所选择的SQL服 务器,并连接该服务器(使用文本框输入的用户名和密码),生成该服务器上数据库列表的下拉列表框。
'//得到指定SQL服务器所有数据库的列表
Dim sqlApp As New SQLDMO.ApplicationClass
Dim sqlSer As New SQLDMO.SQLServerClass
'srv.Connect(this.cboServers.SelectedItem.ToString(),this.txtUser.Text,this.txtPassword.Text);
sqlSer.Connect(Me.CBoxSer.SelectedItem.ToString, Me.TxtName.Text, Me.TxtPwd.Text)
Dim db As SQLDMO.Database
Me.CBoxDaseBase.Items.Clear()
For Each db In sqlSer.Databases
Me.CBoxDaseBase.Items.Add(db.Name)
Next
如图:
我们曾经在以前的应用中多次需要得到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;”语句来引用的话,你将会得到一个错误信息。要让它在你的应用程序里正常工作,你必须按下图 去引用它:
引用了COM对象之后,你就可以很容易地使用它了。
本例子中的所有操作都使用以下的一个或几个对象:
SQLDMO.Application
SQLDMO.SQLServer
SQLDMO.Database
SQLDMO.NameList
象数据备份和恢复这样的操作都有许多对象可以使用,但作为例子,我们会尽量简单,使你轻松进 入SQLDMO的世界来浏览一下它的方便性。
列出本地网络中可使用的SQL服务器相对来说比较简单,首先,你需要引用SQLDMO.Application对象,其 次,你必须建立一个SQLDMO.Application.ListAvailableSQLServers()方法的返回值的实 例SQLDMO.NameList,SQLDMO.NameList是服务器名字的COM集合。
请记住:在你习惯了调用COM对象之前,调用COM对象总是令人感到可怕的,但习惯了就会好的。下面 是一些示例代码,它利用本地可使用的SQL服务器的列表来填充下拉列表框。
'得到所有本地网络中可使用的SQL服务器列表。
Me.CBoxSer.Items.Clear()
Dim sqlApp As New SQLDMO.ApplicationClass
Dim sqlServers As SQLDMO.NameList = sqlApp.ListAvailableSQLServers
Dim i As Int16 = 0
Dim obj As Object
For i = 0 To sqlServers.Count - 1
obj = sqlServers.Item(i)
If Not obj Is Nothing Then
Me.CBoxSer.Items.Add(obj)
End If
Next
正如前面所讲的,是不是很简单?请记住:COM集合的第一个项目是1,而不是0。
连接数据库并得到所有数据库的列表也是相当简单的。下面的代码采用上面下拉列表框所选择的SQL服 务器,并连接该服务器(使用文本框输入的用户名和密码),生成该服务器上数据库列表的下拉列表框。
'//得到指定SQL服务器所有数据库的列表
Dim sqlApp As New SQLDMO.ApplicationClass
Dim sqlSer As New SQLDMO.SQLServerClass
'srv.Connect(this.cboServers.SelectedItem.ToString(),this.txtUser.Text,this.txtPassword.Text);
sqlSer.Connect(Me.CBoxSer.SelectedItem.ToString, Me.TxtName.Text, Me.TxtPwd.Text)
Dim db As SQLDMO.Database
Me.CBoxDaseBase.Items.Clear()
For Each db In sqlSer.Databases
Me.CBoxDaseBase.Items.Add(db.Name)
Next
如图:
相关文章推荐
- C#中使用SQL Server分布式管理对象(SQL-DMO)(转)
- C#中使用SQL Server分布式管理对象(SQL-DMO)
- C#中使用SQL Server分布式管理对象(SQL-DMO)(有改动)
- C#中使用SQL Server分布式管理对象(SQL-DMO)
- C#中使用SQL Server分布式管理对象(SQL-DMO)
- 若要连接到此服务器,必须使用sql server management studio 或 sql server 管理对象(smo)
- 如何在 Visual C# .NET 中使用 SqlDataAdapter 对象更新 SQL Server 数据库
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuilder改造PetShop4 的缓存示例
- 未能建立连接,原因:SQL Server 2005[SQL-DMO]必须使用管理工具才能连接到此服务器,怎么办?
- 开始使用VS2005+ASP.NET+Access(以后可能是MS SQL Server)编写管理系统的计划
- VB.NET中使用Linq TO SQL添加数据后获得自增长列ID
- 在VFP里操作和管理SQL SERVER(介绍SQL-DMO)转帖 SQL SERVER2000数据库备份和恢复存储过程
- asp.net SqlDataAdapter对象使用札记
- 关于SQL Server 2005 与 Asp.net 2.0 中的 SQLCacheDependency 的使用
- 在SQL Server中使用Excel自动化对象(Automating Excel from SQL Server)
- vb.net GDI+入门——使用Graphics对象填充图形
- vb.net中将图片存入SQL Server 2000并能读出来使用
- ADO.NET 2.0 - 读者询问能否使用 SqlBulkCopy 对象来大量复制文字文件