猿问

无法分离数据库(来自 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”。


这很奇怪,因为我确实附加了它,并且我复制了该数据库中的所有数据。


芜湖不芜
浏览 212回答 1
1回答

牛魔王的故事

该DETACH DATABASE命令将架构名称作为参数,而不是数据库文件。所以你的分离命令应该是这样的:sqlAttachCommand = "DETACH database toMerge";就像在您的 ATTACH 命令中一样,您将事物命名为toMerge。在 SQL Exception 中,丢失的数据库并不是指 SQLite 丢失了该文件的事实,它只是试图告诉您正在使用不存在的架构名称。
随时随地看视频慕课网APP
我要回答