Xamarin.Forms Portable + Mono.Data.Sqlite.Portable

时间:2016-02-10 15:13:51

标签: sqlite xamarin.forms

每个人都过得愉快, 我正在使用适用于iOS,Android,Windows Universal(10)的Xamarin.Forms Portable构建应用程序。

我尝试使用Mono.Data.Sqlite.Portable,但我无法创建或连接到本地数据库,我尝试了很多解决方案来解决问题,但直到现在我才找到解决方案..

错误是" connection.open();"

守则是:

  var config = DependencyService.Get<DB.IConfig>();
        var cnn =  config.DirectoryDB;


        using (var connection = new SqliteConnection("" +
            new SqliteConnectionStringBuilder
            {
                DataSource = "URI=file::memory:",
                Version=3,

            }))
        {
            //connection.ChangeDatabase("hello.db");

            connection.Open();
            using (var transaction = connection.BeginTransaction())
            {
                var insertCommand = connection.CreateCommand();
                insertCommand.Transaction = transaction;
                insertCommand.CommandText = "CREATE TABLE TESTE(teste as varchar(10))";
                insertCommand.ExecuteNonQuery();
                transaction.Commit();
            }                
        }

on&#34; DataSource&#34;我有一条本地路径和其他路径。 (例如:C:\ Users \ MyMachineName \ AppData \ Local \ Packages \ f736c883-f105-4d30-a719-4bf328872f5e_nh7s0b45jarrj \ LocalState \ hello.db)

错误是:

  

类型&#39; System.NotImplementedException&#39;的例外情况发生在Mono.Data.Sqlite.dll但未在用户代码中处理

附加信息:未实施方法或操作。

ImageError

Connection Extra Information

最后一张图片,它可能会提供更多信息......

提前谢谢大家:)

1 个答案:

答案 0 :(得分:0)

我找到了解决方案,我希望它可以帮助那些可能和我一样寻找的人。

转到Nuget - 然后下载依赖于SQLitePCL(最新版本)的Portable.Data.Sqlite。 这个包(Portable.Data.Sqlite)它将使用连接,并将创建SqliteDataReader和我们习惯使用的其他属性。

这适用于Visual Studio 2015,项目必须在框架4.51 + =

----错误提示----

如果您遇到此错误:无法使用临时数据库或路径,只需下载Sqlite.dll并放置在项目BIN文件夹和System32 / SysWoW64上。