Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# iOS上的SQLite-从一个文件复制到另一个文件的SQL_C#_Sql_Ios_Sqlite_Xamarin.ios - Fatal编程技术网

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

C# iOS上的SQLite-从一个文件复制到另一个文件的SQL,c#,sql,ios,sqlite,xamarin.ios,C#,Sql,Ios,Sqlite,Xamarin.ios,我的iOS应用程序中有2个数据库文件: 原始数据库只读,保存在我的应用程序的主目录中 保存在用户文档文件夹中的用户数据库 我需要运行SQL查询以将原始数据库复制到用户的数据库,如: INSERT INTO UserDatabase.MyTable SELECT * FROM OriginalDatabase.MyTable; 这是否可以从iOS上运行的SQLite实现?问题是这两个数据库位于不同的文件夹中。我希望避免在代码C中完成这项工作,这是显而易见的方法,只是速度要慢得多 我的应用程序是用

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

原始数据库只读,保存在我的应用程序的主目录中 保存在用户文档文件夹中的用户数据库 我需要运行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文件夹中


您可以对原始数据库、联接、子选择等执行任何需要的操作。

是否要复制整个数据库、表或基于查询的特定记录?特定记录与上面的示例完全相同,可能有WHERE子句、联接等,但我举了一个简单的示例。谢谢,Peter,我将尝试它。不过,我想知道这是否适用于我的情况。一个数据库位于只读文件夹中,我只需要从中选择,我们将查看它是否有效。这在桌面上有效,我们将很快在该设备上进行尝试。