我的数据库没有被复制过来!
这是我正在做的事情:
从终端创建一个新的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”
当我导航到那条路径时,看到......数据库大小为零字节!
我尝试了以下所有方法:
但仍然是同样的行为,我还应该尝试什么?
我的sdk版本已附加
答案 0 :(得分:0)
当您将项目作为“内容”添加到项目中时,它将作为应用程序包的一部分进行复制。它不会自动复制到“Documents”文件夹 - 您必须明确地这样做。
您应该能够使用路径“iosApp.db”打开文件并读取它(应用程序包中的文件不可写),因为这是相对于应用程序包的根目录。您可以使用该路径打开只读SQLite连接,也可以使用文件IO将文件从应用程序包复制到其中一个可写的特殊文件夹。