【问题标题】:Impossible to DETACH database (from c#)不可能 DETACH 数据库(来自 c#)
【发布时间】:2018-05-29 02:50:44
【问题描述】:

我可以附加数据库并将所有数据从一个数据库复制到另一个数据库。但最后我无法使用相同的代码将其分离。

     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 逻辑错误或缺少数据库 no such database: C:\temp\database.db"。

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

【问题讨论】:

    标签: c# sqlite


    【解决方案1】:

    DETACH DATABASE 命令将模式名称作为参数,而不是数据库文件。

    所以你的分离命令应该是这样的:

    sqlAttachCommand = "DETACH database toMerge";   
    

    就像在 ATTACH 命令中一样,您将事物命名为 toMerge

    在 SQL 异常中,缺少数据库并不是指 SQLite 丢失了该文件这一事实,它只是试图告诉您正在使用不存在的架构名称.

    【讨论】:

      猜你喜欢
      • 2013-10-25
      • 2012-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多