Я пытаюсь написать приложение, которое создаст локальную базу данных, если оно не будет найдено в папке приложения. Я запустить этот запрос после удаления файлов MDF Не удается найти файл, указанный при удалении базы данных LocalDb, если был удален .mdf
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()
бросает исключение, даже если он падает базу данных и создает новую. Ошибка исходит от части команды DROP DATABASE
.
Дополнительная информация: Не удалось открыть физический файл "... \ Test_db.mdf". Ошибка операционной системы 2: «2 (система не может найти указанный файл.)».
Ошибка активации файла. Физическое имя файла «... \ Test_db_log.ldf» может быть неверным.
Я нашел this вопрос, но он не имеет решения проблемы.
Должен ли я использовать пустой улов, чтобы предотвратить сбой приложения?
это '...' в пути 'mdf' фактический код файла, или это пример? Путь, который вы пытаетесь записать этот файл, доступен из вашего приложения? Я просто проверяю ваш код с помощью этого пути: 'd: \ Test_db.mdf' и он отлично работает – gofr1
@ gofr1. Это пример. Я использую метод для создания пути с помощью 'Environment.CurrentDirectory', и я просто заменил значения, чтобы упростить их чтение. Но, как было сказано, файл .mdf создается просто отлично, он просто удаляет базу данных, которая выдает ошибку, потому что я удалил .mdf. – Clint
Тогда почему вы удаляете файл, если DROP должен это сделать? – gofr1