Невозможно DETACH базы данных (из C #) - PullRequest
0 голосов
/ 28 мая 2018

Я могу присоединить базу данных и скопировать все данные из одной базы данных в другую. Но в конце концов я не могу отсоединить ее, используя тот же код.

     var connection = new SQLiteConnection(connection)
     connection.Open();
     sqlAttachCommand = "ATTACH database '" + fileLoc + "' AS toMerge";
     var cmd= new SQLiteCommand(sqlAttachCommand);
     cmd.Connection = connection;
     cmd.ExecuteNonQuery();
     ...
     sqlAttachCommand = "DETACH database '" + fileLoc + "'";   

Исключение составляет:

Ошибка логики SQL или отсутствует база данных. Нет такой базы данных: C: \ temp \ database.db ".

Это странно, потому что я прикрепил к нему и скопировал все данныеиз этой базы данных.

1 Ответ

0 голосов
/ 28 мая 2018

Команда DETACH DATABASE принимает имя схемы в качестве параметра, а не файл базы данных.

Поэтому ваша команда отсоединения должна выглядеть следующим образом:

sqlAttachCommand = "DETACH database toMerge";   

как и в вашей команде ATTACH, вы назвали вещь toMerge.

В исключении SQL отсутствует база данных не относится к тому факту, что SQLite потерял этот файл, это просто попыткасказать, что вы используете имя схемы, которая не существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...