C# 如何使用c将mdf文件复制到文件夹中#

C# 如何使用c将mdf文件复制到文件夹中#,c#,.net,sql-server,C#,.net,Sql Server,我使用的是c#,我有一个小的SQL Server数据库,需要复制到文件夹c:\databases\,方法名为CreateCopy 但在File.Copy行出现错误: “该进程无法访问该文件,因为另一进程正在使用该文件” 我读取了该文件。只有在关闭SqlServer或分离该数据库、创建副本并再次打开SqlServer后,才能执行Copy。但是如何通过代码来实现呢 这是我尝试使用的方法: public static void CreateCopy() { try {

我使用的是c#,我有一个小的SQL Server数据库,需要复制到文件夹
c:\databases\
,方法名为
CreateCopy

但在File.Copy行出现错误:
“该进程无法访问该文件,因为另一进程正在使用该文件”

我读取了该文件。只有在关闭SqlServer或分离该数据库、创建副本并再次打开SqlServer后,才能执行Copy。但是如何通过代码来实现呢

这是我尝试使用的方法:

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)复制到一个文件夹中。这些答案并没有帮助我删除
SqlConnection=newsqlconnection(MDF\u connection\u STRING)
它将访问
.mdf
文件,并在
文件.Copy()执行后提供它。因为在执行
File.Copy()
时,文件正被
SqlConnection
使用,这是因为您收到了这样的错误删除
SqlConnection connection=new SqlConnection(MDF\u connection\u字符串)
它将访问
.mdf
文件,并在
文件.Copy()执行后提供它。因为在执行
File.Copy()
时,文件正被
SqlConnection
使用,这是因为您收到了这样的错误删除
SqlConnection connection=new SqlConnection(MDF\u connection\u字符串)
它将访问
.mdf
文件,并在
文件.Copy()执行后提供它。因为在执行
File.Copy()
时,文件正被
SqlConnection
使用,这是因为您收到了这样的错误删除
SqlConnection connection=new SqlConnection(MDF\u connection\u字符串)
它将访问
.mdf
文件,并在
文件.Copy()执行后提供它。因为在执行
File.Copy()
时,文件正被
SqlConnection
使用,这是因为您遇到了这样的错误

据我所知,您正在寻找有助于将MDF文件复制到该位置的代码。您还可以查看一下,了解AttachDbFilename模式。

据我所知,您正在寻找有助于将MDF文件复制到该位置的代码。您还可以查看一下,了解AttachDbFilename模式。

据我所知,您正在寻找有助于将MDF文件复制到该位置的代码。您还可以查看一下,了解AttachDbFilename模式。

据我所知,您正在寻找有助于将MDF文件复制到该位置的代码。您还可以查看以了解AttachDbFilename模式。

数据库文件.mdf和.ldf文件由SQL Server引擎使用

若将数据库从SQL Server实例中分离,则可以复制或移动这些文件

但当您分离db时,它将无法访问


因此,最好先运行一个数据库文件,然后再使用它。

数据库文件.mdf和.ldf文件由SQL Server引擎使用

若将数据库从SQL Server实例中分离,则可以复制或移动这些文件

但当您分离db时,它将无法访问


因此,最好先运行一个数据库文件,然后再使用它。

数据库文件.mdf和.ldf文件由SQL Server引擎使用

若将数据库从SQL Server实例中分离,则可以复制或移动这些文件

但当您分离db时,它将无法访问


因此,最好先运行一个数据库文件,然后再使用它。

数据库文件.mdf和.ldf文件由SQL Server引擎使用

若将数据库从SQL Server实例中分离,则可以复制或移动这些文件

但当您分离db时,它将无法访问


因此,最好先运行一个,然后再使用它。

可能重复的@Mate不是重复的,我也解释了不需要停止服务的原因。在这个问题中,解释了如何停止和启动服务。。。阅读所有答案您需要先停止SQL Server,然后复制数据,然后再次启动。数据库备份也应视为存档,因为它将在单个文件中保存与.mdf和.ldf相同的信息?您可以停止SQL Server并将文件复制到您的存档位置,然后重新启动SQL Server吗?@Mate的可能重复项不是重复项我还解释了不需要停止服务的原因。在这个问题中,解释了如何停止和启动服务。。。阅读所有答案您需要先停止SQL Server,然后复制数据,然后再次启动。数据库备份也应视为存档,因为它将在单个文件中保存与.mdf和.ldf相同的信息?您可以停止SQL Server并将文件复制到您的存档位置,然后重新启动SQL Server吗?@Mate的可能重复项不是重复项我还解释了不需要停止服务的原因。在这个问题中,解释了如何停止和启动服务。。。阅读所有答案您需要先停止SQL Server,然后复制数据,然后再次启动。数据库备份也应视为存档,因为它将在单个文件中保存与.mdf和.ldf相同的信息?您可以停止SQL Server并将文件复制到您的存档位置,然后重新启动SQL Server吗?@Mate的可能重复项不是重复项我还解释了不需要停止服务的原因。在这个问题中,解释了如何停止和启动服务。。。阅读所有答案您需要先停止SQL Server