我試圖做一個Windows窗體應用程序,就可以備份和恢復從SQL Server數據庫。用戶可以選擇保存.bak文件的位置。我有C#:備份SQL Server數據庫到一個新的.bak文件
問題是,如果該文件不存在,它不會創建一個新的。因此,如果我從SQL Server內部進行備份並將其保存到C:\ backup.bak並將其作爲「路徑」傳遞到程序中,但是如果我將該文件的位置或名稱更改爲不存在它會拋出一個錯誤,說它無法打開備份設備。如果它不存在,是否可以創建一個新的.bak文件,我該如何去做?
我的代碼當前如下;
var dataSource = txtDS.Text;
var db = txtDbName.Text;
var path = txtBackup.Text;
var name = txtName.Text;
var desc = txtDesc.Text;
if(File.Exists(path) == true)
{
MessageBox.Show("Test");
}
else
{
Directory.CreateDirectory(@path);
}
Server myServer = new Server(dataSource);
myServer.ConnectionContext.LoginSecure = true;
myServer.ConnectionContext.Connect();
var bkpDbLog = new Backup();
bkpDbLog.Action = BackupActionType.Database;
bkpDbLog.Database = db;
bkpDbLog.Devices.AddDevice(path, DeviceType.File);
bkpDbLog.BackupSetName = name;
bkpDbLog.BackupSetDescription = desc;
bkpDbLog.Initialize = true;
bkpDbLog.Checksum = true;
bkpDbLog.ContinueAfterError = true;
bkpDbLog.Incremental = false;
bkpDbLog.FormatMedia = false;
bkpDbLog.PercentComplete += CompletionStatusInPercent;
bkpDbLog.Complete += BackupCompleted;
bkpDbLog.SqlBackup(myServer);
if (myServer.ConnectionContext.IsOpen)
myServer.ConnectionContext.Disconnect();
謝謝!
我試圖直接保存到C:\,但它仍然拋出一個錯誤。 我遵循本指南http://technico.qnownow.com/backup-and-restore-sql-server-database-programmatically-in-c/ 截圖http://i.imgur.com/jUqSb.jpg – chickenbeef
謝謝!這工作,這是權限。愚蠢的錯誤:) – chickenbeef
當然,爲什麼不。再次感謝。 – chickenbeef