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……
下面是代码:
1namespace 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}
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}
2008年1月9日12:47:24
posted on 2008-01-09 12:50 郝奕 Frank Hao 阅读(1195) 评论(0) 编辑 收藏 举报