.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。
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
{
///
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
///
publicsealedclass DbOper
{
  
///
  
/// DbOper类的构造函数
  
///
  private DbOper()
   {
   }
  
///
  
/// 数据库备份
  
///
  publicstaticvoid 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();
    }
   }
  
///
  
/// 数据库恢复
  
///
  publicstaticvoid 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 2012-01-16 14:35  .net 流氓  阅读(423)  评论(0编辑  收藏  举报