![](/img/trans.png)
[英]How can I restore a .bak file to a new server without using the .mdf or .ldf files, programmatically with C#?
[英]How can I retrieve every .bak file with PowerShell and C#?
我正在用C#.NET開發Windows Form客戶端應用程序,該應用程序允許用戶備份數據庫。 每次進行備份時,都會在SQL Server的sp中執行以下邏輯:
DECLARE @File VARCHAR (1000) = 'C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DBCompany-'
+ (SELECT REPLACE(REPLACE(CONVERT(VARCHAR(500), GETDATE(), 120),':','_'), ' ','_')+ '.bak');
BACKUP DATABASE [DBCompany]
TO DISK = @File
NAME = 'DBCompany';
GO
如您所見,.bak文件會根據保存日期和時間獲得名稱,因此我的目錄中有如下文件:
DBCompany-2015-06-04_20_21_08.bak
DBCompany-2014-02-24_19_01_39.bak
DBCompany-2014-01-22_23_30_58.bak
....
我知道還原.bak文件的語法,但是我試圖讓用戶選擇這些文件之一並進行還原,但是我看不到任何方法來檢索這些文件並向其他人展示而不是使用OpenFileDialog控件(我不想這樣做)。
據我研究,可以將PowerSheel集成到我的C#代碼中。 有人可以為我指出正確的方向嗎?
如果您知道備份文件的物理位置,則可以使用System.IO。 命名空間。 由此
抱歉,要做的代碼可能很冗長,因此我給出了滿足您要求的描述。
謝謝,
您可以從C#中輕松地執行此操作,而無需Powershell。 假定該應用程序與SQL Express實例在同一框上運行,下面是加載組合框的示例:
var backupFileList = System.IO.Directory.GetFiles(@"C:\Program Files\Microsoft SQL Server\MSSQL12.SQLEXPRESS\MSSQL\Backup\DBCompany", "*.bak");
foreach(var backupFile in backupFileList)
{
this.comboBoxBackupFiles.Items.Add(backupFile);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.