1 /// <summary>
2 /// 通过调用MSSQL的SQLDMO.DLL文件来实现备份数据库
3 /// 1.首先在在项目中引用SQLDMO.DLL文件。
4 /// 2.在引用中的SQLDMO.DLL文件右击-->属性-->设置[嵌入互操作类型]为flash
5 /// </summary>
6 public static void DBBackup()
7 {
8 SQLDMO.Backup dbBackup = new SQLDMO.BackupClass();
9 SQLDMO.SQLServer sqlServer = new SQLDMO.SQLServerClass();
10 try
11 {
12 sqlServer.LoginSecure = false;
13 sqlServer.Connect("localhost", "sa", "");
14 dbBackup.Action = SQLDMO.SQLDMO_BACKUP_TYPE.SQLDMOBackup_Database;
15 dbBackup.Database = "kuang"; //数据库名字
16 dbBackup.Files = @"d:\kuang_bak.bak"; //备份位置
17 dbBackup.BackupSetName = "kuang"; //名称,在企业管理器里面选择备份的时候也有这个,貌似没用。
18 dbBackup.BackupSetDescription = "数据库备份"; //描述,在企业管理器里面选择备份的时候也有这个,貌似没用。
19 dbBackup.Initialize = true;
20 dbBackup.SQLBackup(sqlServer);
21 }
22 catch
23 {
24 throw;
25 }
26 finally
27 {
28 sqlServer.DisConnect();
29 }
30 }
1 /// <summary>
2 /// 通过调用MSSQL的SQLDMO.DLL文件来实现从备份文件恢复到是数据库
3 /// 注:恢复是数据库必须是没有链接的。清楚链接的方法:在企业管理器右击数据库-->分离数据库-->点击清楚按钮即可
4 /// </summary>
5 private void DBReply()
6 {
7 SQLDMO.Restore restore = new SQLDMO.RestoreClass();
8 SQLDMO.SQLServer sqlserver = new SQLDMO.SQLServerClass();
9 sqlserver.LoginSecure = false;
10 sqlserver.Connect("localhost", "sa", "");
11 restore.Action = SQLDMO.SQLDMO_RESTORE_TYPE.SQLDMORestore_Database;
12 restore.Database = "kuang";
13 restore.Files = @"d:\kuang_bak.bak";
14 restore.FileNumber = 1;
15 restore.SQLRestore(sqlserver);
16 }
在回复的过程中,需要保证数据库没有正在使用,网上看到的代码经测试没有效果,如果有朋友知道方法的恳请您回复一下,谢谢。
代码是网络上看到的,测试整理了一下,感谢原作者。