无法连接到 MAUI (.NET 8) 中的 SQLLite

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

我在毛伊岛(.NET 7)创建了一个应用程序。现在我尝试更新到 .NET 8 并更新了所有 NuGet 包。 从现在开始,我无法打开与 SQLLite 内部数据库的连接

    public const SQLite.SQLiteOpenFlags Flags =
        SQLite.SQLiteOpenFlags.ReadWrite |
        SQLite.SQLiteOpenFlags.Create |
        SQLite.SQLiteOpenFlags.SharedCache;

    string sPath = BCDataConstants.DatabasePath;
    // value = /data/user/0/it.gattoneroph.photoapp/files/CAPhoto.db 
    // cames from =>       Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), "CAPhoto.db");


    Database = new SQLiteAsyncConnection(sPath, Flags);
    // no error but "System.TypeInitializationException: The type initializer for 'SQLite.SQLiteConnection' threw an exception." in ALL properties

    CreateTableResult s= Database.CreateTableAsync<Tab_TabellaDatabase>().Result;
// here crashes

Win 11 + 模拟器 API 30 上的 VS 2022

.NET 8

NuGet 包

  • SQLitePCLRaw.Core 2.1.8
  • SQLite 3.13.0
  • SQLlite.PCLRaw.lib.e_sqlite3 2.1.8
  • SQLitePCLRaw.bundle_e_sqlite3 2.1.8
  • SQLitePCLRaw.bundle_green 2.1.8
  • 系统.Data.SQLite.Core 1.0.118
  • SQLitePCLRaw.provider.dynamic_cdecl 2.1.8

我能做什么?

尝试了我所知道的一切。

(编辑)

enter image description here 构造函数之后的连接属性

当我尝试创建表时的堆栈跟踪

11:07:55:509 [DOTNET] System.AggregateException:发生一个或多个错误。 (“SQLite.SQLiteConnection”的类型初始值设定项 抛出异常。) 11:07:55:509 [DOTNET] ---> System.TypeInitializationException:“SQLite.SQLiteConnection”的类型初始值设定项引发异常。 11:07:55:509 [DOTNET] ---> System.TypeLoadException: SQLitePCL.SQLite3Provider_e_sqlite3 类型的 VTable 设置失败 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnection..cctor() 11:07:55:509 [DOTNET] --- 内部异常堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionWithLock..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.Entry..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnectionAndTransactionLock(SQLiteConnectionString 连接字符串、对象和事务锁) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnection(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.GetConnection() 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection。<>c__DisplayClass33_0

1[[SQLite.CreateTableResult, SQLite-net, Version=1.9.172.0, Culture=neutral, PublicKeyToken=null]].<WriteAsync>b__0() 11:07:55:509   [DOTNET]    at System.Threading.Tasks.Task
1[[SQLite.CreateTableResult, SQLite-net, 版本=1.9.172.0,文化=中立, PublicKeyToken=null]].InnerInvoke() 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task.<>c.<.cctor>b__281_0(对象 obj) 11:07:55:509 [DOTNET] 在 System.Threading.ExecutionContext.RunFromThreadPoolDispatchLoop(线程 threadPoolThread,ExecutionContextexecutionContext,ContextCallback> 回调,对象状态) 11:07:55:509 [DOTNET] --- 前一个位置的堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionWithLock..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.Entry..ctor(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnectionAndTransactionLock(SQLiteConnectionString> connectionString, Object& transactionLock) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteConnectionPool.GetConnection(SQLiteConnectionString 连接字符串) 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.GetConnection() 11:07:55:509 [DOTNET] 在 SQLite.SQLiteAsyncConnection.get_Tracer() 11:07:55:509 [DOTNET] --- 内部异常堆栈跟踪结束 --- 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task.ThrowIfExceptional(Boolean 包括任务取消异常) 11:07:55:509 [DOTNET] 在 System.Threading.Tasks.Task
1[[SQLite.CreateTableResult, SQLite-net, Version=1.9.172.0, Culture=neutral, PublicKeyToken=null]].GetResultCore(Boolean waitCompletionNotification) 11:07:55:509  [DOTNET]    at System.Threading.Tasks.Task
1[[SQLite.CreateTableResult,SQLite-net, 版本=1.9.172.0,文化=中性,PublicKeyToken=null]].get_Result() 11:07:55:509 [DOTNET] 在 C:\Progetti 中的 PhotoApp.Classes.Database.BCDataConnection..ctor()

c# sqlite android-sqlite maui
1个回答
0
投票
找到解决方案... 我已删除所有 sqllite NuGet 软件包并仅安装了 2 个

    sqlite-net-pcl v.1.9.172
  • SQLitePCLRaw.bundle_green v2.1.8
还将 DbName“CAPhoto.db”更改为“CAPhoto.db3”,并将 dbpath 更改为 FileSystem.AppDataDirectory

现在表就创建成功了

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