ローカルデータベースを作成するアプリケーションを作成しようとしています。私はそれがデータベースを削除し、新しいものを作成していても、.mdfが削除された場合にLocalDbデータベースを削除するときに指定されたファイルが見つかりません
IF EXISTS (SELECT * FROM sys.databases WHERE name = N'Test_db')
BEGIN
DROP DATABASE Test_db
END
CREATE DATABASE Test_db
ON PRIMARY (NAME=Test_db, FILENAME='...\Test_db.mdf')
マイcommand.ExecuteNonQuery()
が例外をスロー.mdfファイルを削除した後、このクエリを実行します。エラーは、コマンドの一部であるDROP DATABASE
から発生します。
追加情報:物理ファイル "... \ Test_db.mdf"を開くことができません。オペレーティングシステムエラー2: "2(指定されたファイルが見つかりませんでした。 )"
ファイルのアクティブ化に失敗しました。物理ファイル名 "... \ Test_db_log.ldf"が正しくない可能性があります。
私はthis質問を見つけましたが、問題の解決策はありません。
アプリケーションがクラッシュしないように空のキャッチを使用する必要がありますか?あなたが削除されたファイルを心配している場合は、ファイルシステムからファイルを削除せずに、サーバーからデータベースを削除するため
それは ''は...へのパスで'mdf'ファイルの実際のコード、またはこれは一例ですか?このファイルを書き込もうとするパスはアプリからアクセスできますか?私はあなたのコードを 'd:\ Test_db.mdf'というパスでチェックしています。それは完全に動作しています – gofr1
@ gofr1 The ... \は例です。私は 'Environment.CurrentDirectory'を使ってパスを構築するメソッドを使いました。読みやすいように値を置き換えました。しかし、述べたように、.mdfはうまく作成されています。私は.mdfを削除したので、エラーをスローするデータベースを削除しています。 – Clint
DROPでこれを行う必要がある場合は、なぜファイルを削除しますか? – gofr1