[英]How to copy file from C#.Net
我的C#.Net Windows應用程序連接到SQLServer2005數據庫並實現數據庫備份功能。
在我的應用程序中
我嘗試執行以下文件復制:
<!-- language:lang-csharp -->
File.Copy(Application.StartupPath + "\\dbSTK.mdf", "D:\\dbSTK123.mdf",true);
但它會引發異常並顯示以下消息:
" The Process cannot Access the File, because it is being use by another Process"
如何復制已在使用的數據庫文件?
您無法在SqlServer運行時復制mdf文件。 只是在復制之前臨時關閉SqlServer或分離該數據庫( 在此處 )。
與其復制實際的MDF,不如使用SQL Server的內置BACKUP命令備份MDF,是一個更好的主意。
分離數據庫然后再復制數據庫的建議是有問題的,因為這會使數據庫脫機。
服務器拒絕對數據文件的進程內訪問。 一旦打開了數據文件,其他進程也無法打開。 這就是您的功能失敗的原因。
您應該關閉所有打開的數據庫連接,以訪問數據庫文件。 但是通常,您不應該觸摸數據庫文件。 您最好使用SQL命令來備份數據庫。
string backupCommandText = "BACKUP DATABASE [<YOUR_DB_NAME>]" +
"TO DISK = N'<BACKUP_PATH>' WITH NOFORMAT, NOINIT, " +
"NAME = N'Web-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10";
SqlCommand cmd = new SqlCommand();
cmd.CommandText = backupCommandText ;
cmd.Connection = conn;
cmd.ExecuteNonQuery();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.