[转载]今日遇到了困难,顺便看了下SMO - Halower - 博客园

[转载]今日遇到了困难,顺便看了下SMO – Halower – 博客园.

C# 如何获取本地数据库SQL Server2008的数据库服务器名称和数据库名称?不知道为什么我的Win7就是注册不了SQLdmo.dll,经过学习,基本可以自己使用SMO解决这些问题。

我在百度中找到了这个问题的答案,不过不知道为什么我的Win7就是注册不了sqldmo.dll,因此无法引用SQL Distributed Management Objects。

问题关键是我安装的是SQL2008EXPRESS版本没有安装SQL2000的 企业版附带不了这个COM组件,也不想安装2000,解决不了问题很纠结。因此我就看了下MSDN,里面说SQLDMO已经被SMO取代了,所以附带的看 了下,SMO,太菜只是知道了怎么使用SMO来控制数据库的简单操作。现在晚上,修改下内容,我已经基本了解SMO的用法了,以后共享给和我一样的新手, 谢谢大家的帮助,对了要是谁还用SQLMDO.DLL,下面的代码可以借鉴一下:

使用 SQLDMO(SQL Distributed Management Objects,SQL分布式管 理对象)。
添加引用->COM里面
//得到所有本地网络中可使用的SQL服务器列表。
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers();
for(int i=0;i<sqlServers.Count;i++) { object srv = sqlServers.Item(i + 1); if(srv != null) { this.cboServers.Items.Add(srv); } } if(this.cboServers.Items.Count > 0)
this.cboServers.SelectedIndex = 0;
else
this.cboServers.Text = "";

//得到指定SQL服务器所有数据库的列表
SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
srv.Connect(this.cboServers.SelectedItem.ToString(),this.txtUser.Text,this.txtPassword.Text);
foreach(SQLDMO.Database db in srv.Databases)
{
if(db.Name!=null)
this.cboDatabase.Items.Add(db.Name);
}

//下面是SMO的项目创建部分,就我不知道,所以记下来,给比我还新的新手看看,不过我也发现这个必须结合.NET3.5以上的版本的LINQ支持

 

在 Visual Studio .NET 中创建 Visual C# SMO 项目

本节介绍了如何生成简单的 SMO 控制台应用程序。

此示例导入命名空间,这样,程序即可以引用 SMO 类型。可以选择导入 Agent 命名空间。当编写使用 SQL Server 代理的程序时使用此命名空间。需要使用 Common 命名空间来建立与 SQL Server 实例的安全连接。使用 SqlClient 命名空间处理 SQL 异常错误。

在 Visual Studio .NET 中创建 Visual C# SMO 项目

启动 Visual Studio 2008(或 Visual Studio 2005)。

文件菜单上,单击新建项目。此时将显示新建项目对话框。

项目类型对话框中,选择“Visual C#”,然后选择“Windows”。在“Visual Studio 已安装的模板窗格中,选择“Windows 应用程序

(可选)在名称字段中,键入新应用程序的名称。

选择 Visual C# 应用程序类型。在下面的示例中,请选择控制台应用程序

项目菜单上,选择添加引用。此时将显示添加引用对话框。

单击浏览,在 C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\ 文件夹中找到 SMO 程序集,然后选择下列文件。这些文件是构建一个 SMO 应用程序至少需要的文件:

Microsoft.SQLServer.ConnectionInfo.dll

Microsoft.SQLServer.Smo.dll

Microsoft.SqlServer.Management.Sdk.Sfc.dll

Microsoft.SqlServer.SqlEnum.dll

注意

使用 Ctrl 键可选择多个文件。

添加需要的任何其他 SMO 程序集。例如,如果您要专门对 Service Broker 进行编程,则可以添加以下程序集:

Microsoft.SqlServer.ServiceBrokerEnum.dll

单击打开

视图菜单中,单击代码。或者选择“Program1.cs [设计窗口,然后双击 Windows 窗体以显示代码窗口。

在代码的命名空间语句前,键入以下 using 语句,以限定 SMO 命名空间中的类型:

using Microsoft.SqlServer.Management.Smo;

using Microsoft.SqlServer.Management.Common;

SMO 在 Microsoft.SqlServer.Management.Smo 下具有各种命名空间,如 Microsoft.SqlServer.Management.Smo.Agent。请根据需要添加这些命名空间。

您可以立即添加 SMO 代码。

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏