用户国营 发表于 2024-1-6 04:29:55

错误记录-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:
https://img2023.cnblogs.com/blog/2447777/202311/2447777-20231122084836150-1838602132.png
镜像源选择阿里云,点击Download:
https://img2023.cnblogs.com/blog/2447777/202311/2447777-20231122084800272-610382506.png
 在控制面板中将之前的MariaDB卸载,然后安装10.9.8版本即可,卸载前可以用HeidiSQL将原来的数据库导出成sql脚本,然后重装后再执行sql导入。
2、将MySql.Data.MySqlClient换成MysqlConnector
直接在NuGet中搜索即可:
https://img2023.cnblogs.com/blog/2447777/202311/2447777-20231122091647005-1871596612.png
总结:

1、回滚MariaDB版本到10.9或之前
2、换成MysqlConnector

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 错误记录-MariaDB连接异常