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}

                                                                                                                                                                        2008年1月9日12:47:24

posted on 2008-01-09 12:50  郝奕 Frank Hao  阅读(1195)  评论(0编辑  收藏  举报

导航