C#备份和恢复SQLServer数据库
文章作者 100test 发表时间 2008:01:04 11:54:24
来源 100Test.Com百考试题网
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
{
///
/// DbOper类的构造函数
///作者:Shadow
///
private DbOper()
{
}
///
/// 数据库备份
///
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().
}
}
///
/// 数据库恢复
///
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().
}
}
}