0

我正在用 C# 构建一个应用程序。作为一项要求,我需要将数据库从一个本地驱动器移动到另一个驱动器。

在阅读了建议的论坛后,移动数据库的最佳方法是:

  • 分离数据库
  • 移动数据库
  • 附加数据库

我能够使用以下代码成功分离数据库:

userConn = new SqlConnection(userdatabase);
userConn.Open();

addConn = new SqlConnection(addInfo);
addConn.Open();

string UserString = "sp_detach_db @DBName, @skipchecks";

SqlCommand cmd = new SqlCommand(UserString, userConn);
cmd.Parameters.AddWithValue("@DBName", userConn.Database);
cmd.Parameters.AddWithValue("@skipchecks", false);
cmd.ExecuteNonQuery();
cmd.Dispose();

cmd = new SqlCommand(UserString, addConn);
cmd.Parameters.AddWithValue("@DBName", addConn.Database);
cmd.Parameters.AddWithValue("@skipchecks", false);           
cmd.ExecuteNonQuery();
cmd.Dispose();

这工作得很好。但是,我无法移动数据库文件。它抛出一个异常:

该进程无法访问文件“*.mdf”,因为它正被另一个进程使用

知道有什么问题吗?

4

0 回答 0