簡介: 問題: C#,VS2022,mariadb-10.11.5-winx64,using MySql.Data.MySqlClient; 在執行connection.Open()時拋出異常:System.InvalidCastException:“Object cannot be cast fr ...
簡介:
問題:
C#,VS2022,mariadb-10.11.5-winx64,using MySql.Data.MySqlClient;
在執行connection.Open()時拋出異常:System.InvalidCastException:“Object cannot be cast from DBNull to other types.”
By MaQaQ 2023-11-22
分析:
原因:
MySql.Data 載入排序規則的方法假定“id"列的值不為空,而從 10.10 版本開始,MariaDB 將“id”列切換為"Allow Null",並且在 Colations 中有很多行帶有 NULL id, 這會導致“Object cannot be cast from DBNull to other types.”異常。
解決方案:
1、回滾MariaDB版本到10.9
MariaDB Server下載地址:https://mariadb.org/mariadb/all-releases/
找到版本10.9.8:
鏡像源選擇阿裡雲,點擊Download:
在控制面板中將之前的MariaDB卸載,然後安裝10.9.8版本即可,卸載前可以用HeidiSQL將原來的資料庫導出成sql腳本,然後重裝後再執行sql導入。
2、將MySql.Data.MySqlClient換成MysqlConnector
直接在NuGet中搜索即可:
總結:
1、回滾MariaDB版本到10.9或之前
2、換成MysqlConnector
本文來自博客園,作者:MaQaQ,轉載請註明原文鏈接:https://www.cnblogs.com/magicMaQaQ/p/17848084.html
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,否則保留追究法律責任的權利。