错误记录-MariaDB连接异常
简介:
问题:
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