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对象,
所以大家在用之前必须在.NET项目中添加对它的引用
添加引用~选择第二个!也就是COM的·不要在它默认的.NET下面找
在里面找。就有,不过名字不叫SQLDMO。找Micosoft SQLDMO object for……
下面是代码:
1
namespace DbService
2
{
3
/// <summary>
4
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复
5
/// </summary>
6
public sealed class DbOper
7
{
8
/// <summary>
9
/// DbOper类的构造函数
10
/// </summary>
11
private DbOper()
12
{
13
}
14
15
/// <summary>
16
/// 数据库备份
17
/// </summary>
18
public static void DbBackup()
19
{
20
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();
21
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
22
try
23
{
24
oSQLServer.LoginSecure = false;
25
oSQLServer.Connect("localhost", "sa", "sa");
26
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
27
oBackup.Database = "Northwind";
28
oBackup.Files = @"d:\Northwind.bak";
29
oBackup.BackupSetName = "Northwind";
30
oBackup.BackupSetDescription = "数据库备份";
31
oBackup.Initialize = true;
32
oBackup.SQLBackup(oSQLServer);
33
}
34
catch
35
{
36
throw;
37
}
38
finally
39
{
40
oSQLServer.DisConnect();
41
}
42
}
43
44
/// <summary>
45
/// 数据库恢复
46
/// </summary>
47
public static void DbRestore()
48
{
49
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();
50
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();
51
try
52
{
53
oSQLServer.LoginSecure = false;
54
oSQLServer.Connect("localhost", "sa", "sa");
55
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
56
oRestore.Database = "Northwind";
57
oRestore.Files = @"d:\Northwind.bak";
58
oRestore.FileNumber = 1;
59
oRestore.ReplaceDatabase = true;
60
oRestore.SQLRestore(oSQLServer);
61
}
62
catch
63
{
64
throw;
65
}
66
finally
67
{
68
oSQLServer.DisConnect();
69
}
70
}
71
}
72
}
namespace DbService2
{3
/// <summary>4
/// DbOper类,主要应用SQLDMO实现对Microsoft SQL Server数据库的备份和恢复5
/// </summary>6
public sealed class DbOper7
{8
/// <summary>9
/// DbOper类的构造函数10
/// </summary>11
private DbOper()12
{13
}14

15
/// <summary>16
/// 数据库备份17
/// </summary>18
public static void DbBackup()19
{20
SQLDMO.Backup oBackup = new SQLDMO.BackupClass();21
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();22
try23
{24
oSQLServer.LoginSecure = false;25
oSQLServer.Connect("localhost", "sa", "sa");26
oBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;27
oBackup.Database = "Northwind";28
oBackup.Files = @"d:\Northwind.bak";29
oBackup.BackupSetName = "Northwind";30
oBackup.BackupSetDescription = "数据库备份";31
oBackup.Initialize = true;32
oBackup.SQLBackup(oSQLServer);33
}34
catch35
{36
throw;37
}38
finally39
{40
oSQLServer.DisConnect();41
}42
}43

44
/// <summary>45
/// 数据库恢复46
/// </summary>47
public static void DbRestore()48
{49
SQLDMO.Restore oRestore = new SQLDMO.RestoreClass();50
SQLDMO.SQLServer oSQLServer = new SQLDMO.SQLServerClass();51
try52
{53
oSQLServer.LoginSecure = false;54
oSQLServer.Connect("localhost", "sa", "sa");55
oRestore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;56
oRestore.Database = "Northwind";57
oRestore.Files = @"d:\Northwind.bak";58
oRestore.FileNumber = 1;59
oRestore.ReplaceDatabase = true;60
oRestore.SQLRestore(oSQLServer);61
}62
catch63
{64
throw;65
}66
finally67
{68
oSQLServer.DisConnect();69
}70
}71
}72
}2008年1月9日12:47:24
posted on 2008-01-09 12:50 郝奕 Frank Hao 阅读(1202) 评论(0) 收藏 举报


浙公网安备 33010602011771号