zoukankan      html  css  js  c++  java
  • 今日遇到了困难,顺便看了下SMO

    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,下面的代码可以借鉴一下:

     1 使用 SQLDMO(SQL Distributed Management Objects,SQL分布式管 理对象)。
    2 添加引用->COM里面
    3 //得到所有本地网络中可使用的SQL服务器列表。
    4 SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
    5 SQLDMO.NameList sqlServers = sqlApp.ListAvailableSQLServers();
    6 for(int i=0;i<sqlServers.Count;i++)
    7 {
    8 object srv = sqlServers.Item(i + 1);
    9 if(srv != null)
    10 {
    11 this.cboServers.Items.Add(srv);
    12 }
    13 }
    14 if(this.cboServers.Items.Count > 0)
    15 this.cboServers.SelectedIndex = 0;
    16 else
    17 this.cboServers.Text = "<No available SQL Servers>";
    18
    19
    20 //得到指定SQL服务器所有数据库的列表
    21 SQLDMO.Application sqlApp = new SQLDMO.ApplicationClass();
    22 SQLDMO.SQLServer srv = new SQLDMO.SQLServerClass();
    23 srv.Connect(this.cboServers.SelectedItem.ToString(),this.txtUser.Text,this.txtPassword.Text);
    24 foreach(SQLDMO.Database db in srv.Databases)
    25 {
    26 if(db.Name!=null)
    27 this.cboDatabase.Items.Add(db.Name);
    28 }



    //下面是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 代码。

     

     

  • 相关阅读:
    spring配置初始化出错
    Java常用工具类(计算MD5,验证码随机生成,天数差值计算)
    Java基础(静态static)
    websocket使用nginx代理后连接频繁打开和关闭
    关于kafka客户端版本与服务端版本不一致导致的一次坑
    kafka
    maven常用命令含义
    pg数据库org.postgresql.util.PSQLException: ERROR: "xxx" is not a sequence
    @Param注解和@Mapper注解
    springmvc对参数接收的两个注解@RequestParam和@RequestBody
  • 原文地址:https://www.cnblogs.com/rohelm/p/2421220.html
Copyright © 2011-2022 走看看