惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
小众软件
小众软件
The Last Watchdog
The Last Watchdog
Latest news
Latest news
P
Palo Alto Networks Blog
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
P
Privacy International News Feed
NISL@THU
NISL@THU
T
Threat Research - Cisco Blogs
T
Threatpost
T
The Exploit Database - CXSecurity.com
S
Schneier on Security
Spread Privacy
Spread Privacy
T
Tor Project blog
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
AWS News Blog
AWS News Blog
S
Securelist
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
Hugging Face - Blog
Hugging Face - Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
C
CERT Recently Published Vulnerability Notes
V
Visual Studio Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
月光博客
月光博客
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
A
Arctic Wolf
腾讯CDC
WordPress大学
WordPress大学
IT之家
IT之家
Last Week in AI
Last Week in AI
博客园 - 聂微东
P
Proofpoint News Feed
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News: Ask HN
Hacker News: Ask HN
Help Net Security
Help Net Security
Blog — PlanetScale
Blog — PlanetScale
爱范儿
爱范儿
美团技术团队
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Tailwind CSS Blog

博客园 - 秋发

利用VC++实现局域网实时视频传输 亿众国际点对点文件传输程序 文件传输协议(File Transfer Protocol, FTP) 点对点传输 图片的版权保护(添加水印) 使用C#在进度条中显示复制文件的进度 C#实现基于TCP协议的网络通讯 C#实现木马程序 视频捕获软件开发完全教学 Visual C#.Net 网络程序开发-Socket篇 用Mencoder进行任意视频格式转换成flv 用mencoder转换flv时如何控制视频品质 使用mencoder剪辑视频 ffmpeg和Mencoder使用实例小全 [转]利用ffmpeg+mencoder视频转换的总结(C#) [转]ffmpeg+mencoder环境搭建和视频处理总结 [转] 用程序来自动建立FTP帐号(serv-u的odbc设置) TreeView 四技 [转]ASP.NET大文件上传的问题<--拘绝潜水的鱼
c#中备份数据库
秋发 · 2007-06-11 · via 博客园 - 秋发

Posted on 2007-06-11 13:49  秋发  阅读(733)  评论()    收藏  举报

 

SQLDMO(SQL Distributed Management Objects,SQL分布式管理对象)封装了Microsoft SQL Server数据库中的对象。SQLDMO是Microsoft SQL Server中企业管理器所使用的应用程序接口,所以它可以执行很多功能,其中当然也包括对数据库的备份和恢复。
当然要用到 sqldmo 来做这个工作
找到 sqldmo.dll这个文件
C:\Program Files\Microsoft SQL Server\80\Tools\Binn\sqldmo.dll
用.Net框架提供的工具转成受托管代码
tlbimp sqldmo.dll /out: c:\SQLDMO.dll

    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();
   }
  }
 }
}