簡體   English   中英

如何從C#.Net復制文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM