zoukankan      html  css  js  c++  java
  • 【转载】在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();
       }
      }
     }
    }
  • 相关阅读:
    Record of coding:Codeforces 1093E
    【刷题记录】网络流24题等
    【模板归纳】网络流及费用流
    【刷题记录】BZOJ2154 crash的数字表格 莫比乌斯反演
    【刷题记录】SDOI2017数字表格
    算法总结 给定范围内最大公约数为某一定值的数对个数的算法
    刷题记录【BZOJ2440 完全平方数】数论、组合数学、莫比乌斯函数
    刷题记录 【HAOI2007】理想的正方形 二维st表
    刷题记录【ZJOJ2005午餐】,贪心+DP或者
    刷题记录【ZJOI2007棋盘制作】二维DP,悬线法。。。
  • 原文地址:https://www.cnblogs.com/Jaylong/p/C12.html
Copyright © 2011-2022 走看看