如何从.bak文件中恢复C#windows应用程序中的.mdf数据库

时间:2012-12-31 06:20:39

标签: c# visual-studio-2008

我正在使用smo编码,但什么都没发生。

        Restore res = new Restore();
        res.Devices.AddDevice(@"D:\Shivam.bak", DeviceType.File);
        BackupDeviceItem bkpDevice = new BackupDeviceItem(@"\\hqsqlbkup1\VN\Shivam.bak", DeviceType.File);
        res.Database = "ShivamDb";
        res.Action = RestoreActionType.Database;
        res.RelocateFiles.Add(new RelocateFile("Shivam", @"+ System.Windows.Forms.Application.StartupPath +\\Shivam.mdf"));
        res.RelocateFiles.Add(new RelocateFile("Shivam_log", @"System.Windows.Forms.Application.StartupPath + \\Shivam_log.ldf"));

        res.ReplaceDatabase = true;
        MessageBox.Show("Restore complited");

2 个答案:

答案 0 :(得分:2)

好的,我看到你创建了一个恢复,初始化很多 - 但你在哪里告诉它执行那个?调用SqlRestore实际执行还原的位置在哪里?

不,如果不调用相应的方法,初始化Restore类(SMO)将不会神奇地执行Operation。

答案 1 :(得分:0)

你必须调用Restore类的SqlRestore或SqlRestoreAsyc方法,才能恢复你的数据库!

在以下链接中,您可以找到有关备份和还原操作的良好示例:http://www.mssqltips.com/sqlservertip/1849/backup-and-restore-sql-server-databases-programmatically-with-smo/