主页 > 编程资料 > C# >
发布时间:2015-09-26 作者:网络 阅读:253次

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

         }

     }

}

 


关键字词: