我的sqlite3数据库复制,大小为0字节

时间:2014-07-15 21:26:52

标签: ios sqlite xamarin

我的数据库没有被复制过来!

这是我正在做的事情:

从终端创建一个新的sqllite3数据库:

sqlite> create table myTable (id integer primary key, name text);
sqlite> insert into myTable (name) values ('john');
sqlite> select * from myTable;
1|john

这将在此路径中创建一个db:users / John / iosApp.db,大小为2kb

然后我将该数据库复制到我的xamarin项目并将其设置为buildAction     '内容'

我进入项目的路径并标记数据库并确保其大小仍为2kb ...

然后我运行应用程序并在第二行之后设置了一个断点:

string pathToDatabase = "iosApp.db";
userPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), pathToDatabase);

它给了我这条道路:“/ Users / John / Library / Application Support / iPhone Simulator / 7.0.3 / Applications / 6347705D-033A-44EA-91DF-4B5F31A2ED31 / Documents / iosApp.db”

当我导航到那条路径时,看到......数据库大小为零字节!

我尝试了以下所有方法:

  • 项目中的全部清除
  • 重建所有
  • 从项目中删除了'debug'文件夹
  • 重启Xamarin
  • 甚至重启机器

但仍然是同样的行为,我还应该尝试什么?

我的sdk版本已附加enter image description here

1 个答案:

答案 0 :(得分:0)

当您将项目作为“内容”添加到项目中时,它将作为应用程序包的一部分进行复制。它不会自动复制到“Doc​​uments”文件夹 - 您必须明确地这样做。

您应该能够使用路径“iosApp.db”打开文件并读取它(应用程序包中的文件不可写),因为这是相对于应用程序包的根目录。您可以使用该路径打开只读SQLite连接,也可以使用文件IO将文件从应用程序包复制到其中一个可写的特殊文件夹。