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

推荐订阅源

云风的 BLOG
云风的 BLOG
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
P
Proofpoint News Feed
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
IT之家
IT之家
Microsoft Security Blog
Microsoft Security Blog
F
Fortinet All Blogs
人人都是产品经理
人人都是产品经理
博客园 - 叶小钗
C
Check Point Blog
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
月光博客
月光博客
美团技术团队
D
Docker
博客园 - Franky
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 【当耐特】
罗磊的独立博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报

博客园 - 编程山人

品牌大全 控制只生成一个子窗体(简单) C#类中的get 和set 函数的具体用法 What's TM? 在C#中利用SharpZipLib进行文件的压缩和解压缩 WinForm实现SQLServer存储图片 通过C#调用CHM帮助文件 [Remoting专题系列] 一:.NET Remoting [Remoting专题系列] 二:远程对象 [Remoting专题系列] 三:激活模式 [Remoting专题系列] 四:生存期租约 [Remoting专题系列] 五:信道 [Remoting专题系列] 六:异步调用 [Remoting专题系列] 七:调用上下文 [Remoting专题系列] 八:元数据 [Remoting专题系列] 九:动态发布 [Remoting专题系列] 十:追踪服务 [Remoting专题系列] 十一:事件 [Remoting专题系列] 十二:配置文件
在C#中运用SQLDMO备份和恢复Microsoft SQL Server数据库
编程山人 · 2007-06-14 · via 博客园 - 编程山人

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