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

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(); 
   }
 
  }
 
}
 
}
 
posted on 2007-06-14 02:06  编程山人  阅读(372)  评论(0编辑  收藏  举报