在C#中运用SQLDMO备份和恢复SQL Server数据库

80酷酷网    80kuku.com

  server|备份|恢复|数据|数据库    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();          }      } } 

分享到
  • 微信分享
  • 新浪微博
  • QQ好友
  • QQ空间
点击: