• 【转载】在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库


    在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库

    SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。

          SQLDMO由Microsoft SQL Server自带的SQLDMO.dll提供,由于SQLDMO.dll是一个COM对象,所以大家在用之前必须在.NET项目中添加对它的引用,如下图所示:

    下面是用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类:

    using System;

    namespace DbService
    {
     
    /// <summary>
     
    /// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
     
    /// </summary>
     public sealed class DbOper
     {
      
    /// <summary>
      
    /// DbOper类的构造函数
      
    /// </summary>
      private DbOper()
      {
      }

      
    /// <summary>
      
    /// 数据库备份
      
    /// </summary>
      public static void DbBackup()
      {
       SQLDMO.Backup oBackup 
    = new SQLDMO.BackupClass();
       SQLDMO.SQLServer oSQLServer 
    = new SQLDMO.SQLServerClass();
       
    try
       {
        oSQLServer.LoginSecure 
    = false;
        oSQLServer.Connect(
    "localhost""sa""1234");
        oBackup.Action 
    = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
        oBackup.Database 
    = "Northwind";
        oBackup.Files 
    = @"d:\Northwind.bak";
        oBackup.BackupSetName 
    = "Northwind";
        oBackup.BackupSetDescription 
    = "数据库备份";
        oBackup.Initialize 
    = true;
        oBackup.SQLBackup(oSQLServer);
       }
       
    catch
       {
        
    throw;
       }
       
    finally
       {
        oSQLServer.DisConnect();
       }
      }

      
    /// <summary>
      
    /// 数据库恢复
      
    /// </summary>
      public static void DbRestore()
      {
       SQLDMO.Restore oRestore 
    = new SQLDMO.RestoreClass();
       SQLDMO.SQLServer oSQLServer 
    = new SQLDMO.SQLServerClass();
       
    try
       {
        oSQLServer.LoginSecure 
    = false;
        oSQLServer.Connect(
    "localhost""sa""1234");
        oRestore.Action 
    = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
        oRestore.Database 
    = "Northwind";
        oRestore.Files 
    = @"d:\Northwind.bak";
        oRestore.FileNumber 
    = 1;
        oRestore.ReplaceDatabase 
    = true;
        oRestore.SQLRestore(oSQLServer);
       }
       
    catch
       {
        
    throw;
       }
       
    finally
       {
        oSQLServer.DisConnect();
       }
      }
     }
    }
  • 相关阅读:
    StructureMap经典的IoC/DI容器
    移植的7zip到Vxworks 取名vx7zip
    试验Boost在Vxworks上的应用日记 三
    Log4cpp 崩溃
    试验Boost在Vxworks上的应用日记 一
    Vx7zip改进
    GoAhead 2.5 Web Server 网页ROM化的改进
    试验Boost在Vxworks上的应用日记 二
    原来CoreBluetooth 只支持Bluetooth Low Energy
    可变长结构体
  • 原文地址:https://www.cnblogs.com/Jaylong/p/C12.html
Copyright © 2020-2023  润新知