我正在用 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”,因为它正被另一个进程使用
知道有什么问题吗?