[英]How to copy mdf file into a folder with c#
我正在使用c#,并且我有一个小型SQL Server数据库,需要将其复制到文件夹C:\\databases\\
,方法名称为CreateCopy
。
但是在File.Copy行上出现错误: "The Process cannot Access the File, because it is being use by another Process"
我读到File.Copy仅在关闭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模式。
删除SqlConnection connection = new SqlConnection(MDF_CONNECTION_STRING);
它会访问.mdf
文件,并在File.Copy()
执行后给出该文件。 因为在执行File.Copy()
, SqlConnection
正在使用该文件,这是因为您收到这样的错误
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.