⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sqlbackup.txt

📁 用C#语言书写的用于Microsoft SQL Server数据库备份和恢复的类
💻 TXT
字号:
WinForm(C#)中运用SQLDMO备份和恢复SQL 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(); 

          //显示进度条
             SQLDMO.BackupSink_PercentCompleteEventHandler progress = new 
    
              SQLDMO.BackupSink_PercentCompleteEventHandler(Step);
              oBackup.PercentComplete += progress;

         try

         { 

              oSQLServer.LoginSecure = false; 

              oSQLServer.Connect("localhost", "sa", "wang"); 

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

          //显示进度条
              SQLDMO.RestoreSink_PercentCompleteEventHandler progress =
              new SQLDMO.RestoreSink_PercentCompleteEventHandler(Step); 
               oRestore .PercentComplete += progress;


         try

         { 

              oSQLServer.LoginSecure = false; 

              oSQLServer.Connect("localhost", "sa", "wang"); 

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

         } 

     } 

}

 

#region 进度条
    private void Step(string message,int percent) 
    { 
    progressBar1.Value = percent ; 
   }
    #endregion

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -