用Xamarin iOS插入SQLite表时出错。

问题描述 投票:0回答:1

我有一个Xamarin Forms应用程序,在Android上运行良好,但当我在iOS上运行时,当我设置数据库时,我得到了这个错误。

Method not found: string SQLitePCL.raw.sqlite3_column_name(SQLitePCL.sqlite3_stmt,int)

然后当我试图插入到数据库表中时

Method not found: string SQLitePCL.raw.sqlite3_errmsg(SQLitePCL.sqlite3)

应用程序使用mvvmlight,我在那里安装了sqline-net-pcl包,也在平台代码中安装了。版本都是匹配的。

我的sqlite的iOS初始化代码是这样的(在平台上)

public class SQLiteConnectionFactory : ISqliteConnectionFactory
{
    readonly string Filename = "mydb";

    public SQLiteConnection GetConnection()
    {
        var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        path = Path.Combine(path, Filename);

        SimpleIoc.Default.Register<ISqliteConnectionFactory, SQLiteConnectionFactory>();
        return new SQLiteConnection(path, SQLiteOpenFlags.Create | SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.SharedCache);
    }

并插入代码(在mvvmlight项目中),像这样

public void SaveListData<T>(List<T> toStore)
    {
        try
        {
            lock (dbLock)
            {
                connection.InsertAll(toStore);
            }
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex.Message);
        }
    }

我在Xam.Android和sqlite-net-pcl上遇到过问题,但在iOS上从未遇到过。

我安装了sqlite-net-pcl 1.7.302-beta和SQLitePCL.* 2.0.2包(使用测试版是为了防止稳定版的一些链接问题)。

下面是安装iOS包的照片

installed packages for iOS

xamarin.forms xamarin.ios
1个回答
0
投票

把你的sqlite-net-pcl包降级到1.5.231版本,这对我来说是个好办法

© www.soinside.com 2019 - 2024. All rights reserved.