如何复制mdf文件到一个文件夹与c#
本文关键字:一个 文件夹 文件 何复制 复制 mdf | 更新日期: 2023-09-27 18:11:51
我使用c#,我有一个小的SQL Server数据库,我需要复制到一个文件夹C:'databases'
,方法名称是CreateCopy
。
但在文件。复制行出现错误:"The Process cannot Access the File, because it is being use by another Process"
我读了那个文件。只有关闭SqlServer或将该数据库分离,创建副本并重新打开SqlServer后才能执行复制。但是如何通过代码来实现呢?
这是我尝试使用的方法:
public static void CreateCopy()
{
try
{
DateTime date = DateTime.Now;
SqlConnection connection = new SqlConnection(MDF_CONNECTION_STRING);
String dbpath = String.Format(@"C:'databases'{0:yyyyMMdd}.mdf", Cash, date);
File.Copy(@"C:'Program Files'Microsoft SQL Server'MSSQL12.MSSQLSERVER'MSSQL'DATA'database.mdf", dbpath);
String lgpath = String.Format(@"C:'databases'{0:yyyyMMdd}_log.ldf", Cash, date);
File.Copy(@"C:'Program Files'Microsoft SQL Server'MSSQL12.MSSQLSERVER'MSSQL'DATA'database_log.ldf", lgpath);
}
catch(Exception e)
{
throw new ApplicationException("Error", e);
}
}
提前感谢!
这不是这里的副本,因为我不需要创建一个bak文件,我需要存档这个数据库。我只需要复制这两个文件。MDF和。ldf)放到一个文件夹中。这些答案对我没有帮助
我所理解的是,您正在寻找的代码将帮助您以编程方式枚举,附加和分离SQL Server数据库,以便您可以将MDF文件复制到该位置。您还可以查看如何备份和恢复,以获得AttachDbFilename模式的概念。
数据库文件。mdf和。ldf文件由SQL Server引擎使用。
如果你从SQL Server实例中分离数据库,那么你可以复制或移动这些文件。
但是当您DETACH db时,它将无法访问!
所以最好在SQL中运行备份命令,然后再使用它
删除SqlConnection connection = new SqlConnection(MDF_CONNECTION_STRING);
,它将访问.mdf
文件并在File.Copy()
执行后给予它。因为在File.Copy()
执行的时候文件正在被SqlConnection
使用这是因为你会得到这样的错误