c# - 不可能 DETACH 数据库(来自 c#)
问题描述
我可以附加数据库并将所有数据从一个数据库复制到另一个数据库。但最后我无法使用相同的代码将其分离。
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"。
这很奇怪,因为我确实为它附加了它,并且我复制了这个数据库中的所有数据。
解决方案
该DETACH DATABASE
命令将模式名称作为参数,而不是数据库文件。
所以你的分离命令应该是这样的:
sqlAttachCommand = "DETACH database toMerge";
就像在您的 ATTACH 命令中一样,您将其命名为 thing toMerge
。
在 SQL Exception 中,丢失的数据库并不是指 SQLite 丢失了该文件的事实,它只是试图告诉您正在使用不存在的模式名称。
推荐阅读
- javascript - onload 在课堂上不起作用
- ios - iOS后退按钮垂直位置
- ios - Can I build one iPhone app that manages 100 Apple watches that I provide customers?
- python - Money Tax and Tip Float Complication
- spring - JPA Lazy with Entity Graph 发出额外的请求
- wpf - Change foreground and background color when hover
- javascript - React.js - 正在更改要控制的提交类型的不受控制的输入。输入元素不应从不受控切换到受控
- java - Android 事物:使用命令 writeBuffer、write、byte[] 在 i2c 寄存器中写入许多字节
- json - Parsing JSON (from select database) using Volley
- .net - 指定了无效的提供程序类型