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

推荐订阅源

爱范儿
爱范儿
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
MongoDB | Blog
MongoDB | Blog
Martin Fowler
Martin Fowler
GbyAI
GbyAI
Microsoft Azure Blog
Microsoft Azure Blog
Recent Announcements
Recent Announcements
F
Fortinet All Blogs
B
Blog
U
Unit 42
B
Blog RSS Feed
D
DataBreaches.Net
Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
腾讯CDC
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
Visual Studio Blog
博客园 - 聂微东
MyScale Blog
MyScale Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta

博客园 - deadshot123

tmplog javascript时间toString在java中转换成Date的测试代码 - deadshot123 - 博客园 在windows xp sp2 下修复 mdac 2.8 OutLook风格的菜单 td上长英文单词换行 struts-tiles初学 - deadshot123 - 博客园 时间控件最终版 点击改变颜色的日历(上篇改一行代码) 博客上的日历控件的初步实现 W3wp.exe内存占用问题以及如何查看一个网站对应的w3wp.exe(转) test 分批提交数据(删除大数据量时候用) Bat文件编写方法(转) Visual Studio 2005常用插件搜罗 (转) oracle使用numtoyminterval来添加准确的月或者年 2003 server iis默认不解析asp 小知识:象素与字号的换算(转) .net学习计划 关于xp+ie7下,执行confirm会出现点击取消也执行submit的问题解决方案
在C#中运用SQLDMO备份和恢复SQL Server数据库 (转)
deadshot123 · 2007-04-09 · via 博客园 - deadshot123

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

SQLDMO由Microsoft SQL Server自带的

SQLDMO.dll提供,由于SQLDMO.dll是一个COM对象(有关COM的概念,请参看我的COM与COM+技术那篇文章),所以大家在用之前必须在.NET项目中添加对它的引用。

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

public  sealed  class  DbOper

{

     ///<summary>

     /// DbOper类的构造函数

///作者:Shadow

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

         }

     }

}

注册SQLDMO.dll用到的组件

SQLDMO.DLL
SQLDMO.rll
sqlresld.dl
sqlsvc.dll
sqlsvc.rll
Sqlwid.dll
Sqlwoa.dll
w95scm.dll

注:如果注册不成功请更新MDAC版本至2.8