服务器的还原数据库失败

时间:2013-08-20 17:33:54

标签: c# winforms sql-server-2008-r2 smo database-restore

使用这个我成功备份了我的数据库:

Server myServer = new Server(@"PC-1\INSTANCE1");   
private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {

                Backup bkpDBFull = new Backup();
                bkpDBFull.Action = BackupActionType.Database;
                bkpDBFull.Database = "MyDatabase";
                BackupDeviceItem bkpDevice = new BackupDeviceItem(saveFileDialog1.FileName, DeviceType.File);
                bkpDBFull.Devices.Add(bkpDevice);
                bkpDBFull.BackupSetName = "Sample";
                bkpDBFull.BackupSetDescription = "Sample";
                bkpDBFull.SqlBackup(myServer);
            }
        }
        catch (SmoException ex)
        {
            throw new SmoException(ex.Message, ex.InnerException);
        }
    }

但我的恢复Restore failed for Server 'PC-1\INSTANCE1'.

出错了
    private void button2_Click(object sender, EventArgs e)
    {
        if (openFileDialog1.ShowDialog() == DialogResult.OK)
        {
            Restore restoreDB = new Restore();
            restoreDB.Database = "MyDatabase";
            restoreDB.Action = RestoreActionType.Database;
            BackupDeviceItem bkpDevice = new BackupDeviceItem(openFileDialog1.FileName, DeviceType.File);
            restoreDB.Devices.Add(bkpDevice);
            restoreDB.ReplaceDatabase = true;
            restoreDB.SqlRestore(myServer);
        }
    }

我在备份和还原中使用相同的服务器。虽然备份使用相同的服务器和数据库成功,但为什么恢复失败?

1 个答案:

答案 0 :(得分:0)

要排除的一件事是它不喜欢机器名称中的连字符,你不应该这样做。 如果您尝试使用IP地址作为服务器名称,则应该对此进行排除。

正如其他人所说的那样,更有可能成为一个正在使用的数据库。