c# - iOS 上的 SQLite - 从一个文件复制到另一个文件的 SQL

标签 c# sql ios sqlite xamarin.ios

我的 iOS 应用程序中有 2 个数据库文件:

  • 原始数据库(只读,保存在我应用的主目录中)
  • 用户的数据库(保存在用户的Documents文件夹中)

我需要运行 SQL 查询以从原始数据库复制到用户数据库,例如:

INSERT INTO UserDatabase.MyTable
SELECT * FROM OriginalDatabase.MyTable;

在 iOS 上运行的 SQLite 是否可行?问题是这两个数据库位于不同的文件夹中。我想避免在代码 (C#) 中完成这项工作,这是一种显而易见的方式,只是速度要慢得多。

我的应用程序是用 C#/MonoTouch 编写的,但这可能无关紧要。

最佳答案

通过@Peter M 的链接解决。

这是在 iOS 上执行此操作的 SQL:

    ATTACH DATABASE '../YourApp.app/YourDatabase.db' AS OriginalDatabase;

    INSERT INTO Main.MyTable
    SELECT * FROM OriginalDatabase.MyTable;

    DETACH DATABASE OriginalDatabase;

注意 Main 的使用,这是您使用 SqliteConnection 连接的数据库,在我的例子中它位于 Documents文件夹。

您可以对 OriginalDatabase、连接、子选择等做任何您需要的事情。

关于c# - iOS 上的 SQLite - 从一个文件复制到另一个文件的 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350894/

相关文章:

java - 在 querydsl 中选择每组最大的元素

mysql - 使用 Sum 函数连接多个表的 SQL 查询

android - iOS 的多方等价物

ios - 在沙盒模式下出现的非 "Cleared For Sale"的 App Purchase 产品

c# - Database.ExecuteSqlCommand 的返回值是什么?

c# - 透明窗口上的wpf webbrowser

mysql - 当表达式不涉及列时,查询优化器是否将表达式转换为常量

ios - 图像和文本字段的 Xcode 约束?

c# - 创建只读 ref 结构的集合

c# - 如何在 step-into(F11) 中跳过方法