使用这个我成功备份了我的数据库:
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);
}
}
我在备份和还原中使用相同的服务器。虽然备份使用相同的服务器和数据库成功,但为什么恢复失败?
答案 0 :(得分:0)
要排除的一件事是它不喜欢机器名称中的连字符,你不应该这样做。 如果您尝试使用IP地址作为服务器名称,则应该对此进行排除。
正如其他人所说的那样,更有可能成为一个正在使用的数据库。