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