【转载】在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();
   }
  }
 }
}

 

 

转载于:https://www.cnblogs.com/Jaylong/archive/2011/06/10/C12.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/261392.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

雨棚板弹性法计算简图_钢结构工程量计算、报价要点

第一部分图纸一、图纸&#xff1a;根据图纸目录&#xff0c;清理核对图纸数量&#xff0c;检查是否有遗漏。二、建筑施工图1. 设计总说明&#xff08;1&#xff09; 建筑面积、结构形式、柱距、跨度、结构布置情况&#xff1b;&#xff08;2&#xff09; 工程量计算的范围&…

ubuntu制作usb启动盘

准备&#xff1a; u盘iso镜像文件--ubuntu-12.04.2-desktop-amd64.iso烧盘软件--unetbootin-linux-583步骤&#xff1a; 格式化u盘 查看u盘信息 #mount/dev/sdb1 on /media/KINGSTON type vfat (rw,nosuid,nodev,uid1000,gid1000,shortnamemixed,dmask0077,utf81,showexec,flus…

十分钟理解线性代数的本质_数学对于编程来说到底有多重要?来看看编程大佬眼里的线性代数!...

本文提出了一种观点&#xff1a;从应用的角度&#xff0c;我们可以把线性代数视为一门特定领域的程序语言。我们一起来看看&#xff01;文章有点偏理论讨论&#xff0c;可能比较枯燥&#xff0c;对于一名程序员&#xff0c;你如果看下去&#xff0c;你将会有不一样的收获&#…

Linux Socket学习--套接口的类型和协议

我们首先来说一下PF_INET和AF_INET&#xff0c;虽然标准提倡在指定demain参数的时候&#xff0c;优先使用PF_INET&#xff0c;但是大量已经编写的c代码遵循旧的协议。目前情况是AF_UNIXPF_UNIX&#xff0c;AF_INETPF_INET。但是将来是不是这样不好说啊。 不同于socketpari函数的…

8266串口调试助手_200行Python代码实现串口调试助手(2) 界面构建

大家好&#xff0c;我是痞子衡&#xff0c;是正经搞技术的痞子。今天痞子衡给大家介绍的是串口调试工具pzh-py-com诞生之界面构建。一个软件的UI界面是非常重要的&#xff0c;这是软件与用户交互的接口&#xff0c;软件功能即使再强大&#xff0c;但如果没有清晰的UI界面&#…

权限访问控制设计

一、前言 之前的博客一直都还没写到框架的实现及权限系统&#xff0c;今天开始写我的权限系统&#xff0c;我以前做过的项目基本上都有权限管理这个模块&#xff0c;但各个系统都会有一些不太一样&#xff0c;有些简单点&#xff0c;有些稍微复杂一点&#xff0c;一句话&#x…

卸载失败_Windows 10可能的新功能-自动卸载失败的补丁更新

Windows 10作为Windows最新报告&#xff0c;微软正在向Windows 10添加一项新的恢复功能&#xff0c;该功能旨在自动检测更新安装后启动失败的时间。在用户不必做任何事情的情况下&#xff0c;将卸载违规更新&#xff0c;这个操作可以引导系统再次运行。根据在线发布的支持文档&…

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析

iOS开发CoreAnimation解读之三——几种常用Layer的使用解析 一、CAEmitterLayer CAEmitterLayer是CoreAnimation框架中的粒子发射层&#xff0c;在以前的一片博客中有详细的介绍和范例&#xff0c;这里不再重复&#xff0c;地址如下&#xff1a; 粒子效果的应用和火焰范例&…

中文格式_常见中文编码格式

中文编码主要有以下四种&#xff1a;GB2312简体中文编码&#xff0c;一个汉字占用2个字节&#xff0c;在大陆是主要的编码方式。当文章/网页中包含繁体中文、日文、韩文等时&#xff0c;这些内容可能无法被正确编码。BIG5繁体中文编码&#xff0c;主要在台湾地区使用。GBK支持简…

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用

SQLite数据库常用语句及MAC上的SQLite可视化工具MeasSQLlite使用 一、引言 在移动开发中&#xff0c;通常会用到一些小型的数据库进行数据管理。SQLite是一款十分小巧便捷的数据库&#xff0c;在iOS开发中&#xff0c;原生框架也对其有很好的支持。 二、SQLite常用语句 数据库…

SQL Server之字符串函数

以下所有例子均Studnet表为例&#xff1a; 计算字符串长度len&#xff08;&#xff09;用来计算字符串的长度 select sname ,len(sname) from student字符串转换为大、小写lower() 用来将一个字符串转换为小写&#xff0c;upper() 用来将一个字符串转换为大写 select lower(I …

Android通用流行框架大全

Android通用流行框架大全 1. 缓存 名称描述DiskLruCacheJava实现基于LRU的磁盘缓存2.图片加载 名称描述Android Universal Image Loader一个强大的加载&#xff0c;缓存&#xff0c;展示图片的库Picasso一个强大的图片下载与缓存的库Fresco一个用于管理图像和他们使用的内存的库…

Windows Shell 编程 第六章 【来源:http://blog.csdn.net/wangqiulin123456/article/details/7987951】...

第六章 快捷方式的最短路径 Windows Shell允许存储任何对象的引用到系统范围内的任何地点。例如&#xff0c;当你从一个文件夹拖拽可执行程序到另一个文件夹时&#xff0c;鼠标自动改变形状给出除拷贝和移动文件之外的第三种选择。 除非你确定&#xff0c;否则可执行文件是不能…

ShowMsg函数妙用

为什么80%的码农都做不了架构师&#xff1f;>>> 在对DedeCMS做2次开发的时候可能提示信息会经常用到&#xff0c;为了方便在此将ShowMsg方法提取出来&#xff0c;使用方法&#xff1a;ShowMsg&#xff08;“提示信息”&#xff0c;“进行跳转的页面URL”&#xff0…

二进制文件比较

一 工具 使用Araxis Merge类似的工具来比较两个文件夹是否相同&#xff0c;比较两个二进制文件是否相同。1&#xff09; 比较两个文件夹是否相同&#xff0c;只要有文件的名字不同就认为两个文件夹不相同2&#xff09; 文件修改为新的名字后&#xff0c;二进制比较时仍与原文件…

土压力图怎么画_电气系统图怎么画?

电气系统图&#xff0c;又称为电气系统控制图&#xff0c;是通过使用国家规定的图形符号和文字代号代表各种电器、电机及元件&#xff0c;根据生产机械的要求和各种电器的原理&#xff0c;用线条代表导线连接起来&#xff0c;用于展示供电线路与各设备工作原理及其相互关系的一…

考勤助手——数据库3.0版本

基于数据库1.0及2.0版本&#xff0c;我们将细节的地方逐一进行讨论&#xff0c;设计出了数据库3.0版本。 根据ER图&#xff0c;进行基本表的设计如下&#xff1a; 转载于:https://www.cnblogs.com/GG-TEN/p/5471019.html

幽灵交易策略_幽灵交易者策略(附源代码)

NO1 . 前言正如幽灵交易者的名字&#xff0c;该策略的核心思路是&#xff0c;在真实下单交易之前&#xff0c;先虚拟出一个交易&#xff0c;如果这个虚拟的交易是亏损的&#xff0c;那么下一次才启动真实的交易。NO2 . 策略简介该策略思路源自于交易者的观察&#xff0c;交易者…

test blog

blogsdf sdfsd转载于:https://blog.51cto.com/11570194/1771304

并行编程——内存模型之缓存一致性

1 定义 缓存一致性 Cache coherence 简称 CC&#xff0c; 缓存一致性协议是在共享缓存多处理器架构确保最终一致性最突出、最重要的机制。这些协议在缓存线&#xff08;cache-line&#xff09;级别实现了对一致性的保证。缓存线是从主内存中读取数据和向内存中写入数据的缓存单…