问题描述, 在c# .NetCore 3.1 winform 程序中, 使用mysql, 用nuget下载了MySql.data 8.0.26, 执行如下代码,在SQLCon.Open这句出现异常
string connetStr = "Server=xxxx.com;port=5889;database=bldb;uid=root;password=xxxx;sslMode=none;CharSet=utf8;Convert Zero Datetime=True;"; //
string searchStr = "select * from t_account"; //表中数据
MySqlConnection SQLCon;
MySqlCommand SQLCmd;
SQLCon = new MySqlConnection(connetStr);
try
{
var temp = SQLCon.State;
SQLCon.Open(); //连接数据库
MySql.Data.MySqlClient.MySqlDataAdapter adapter = new MySql.Data.MySqlClient.MySqlDataAdapter(searchStr, SQLCon);
DataTable a = new DataTable();
adapter.Fill(a);
this.dataGridView1.DataSource = a;
}
catch (MySqlException ex)
{
}
网上查了半天很少见,别人的经验都无法用, 一开始以为是版本问题, 翻来复去修改很多依赖项的版本号,还没解决问题, 但是仔细观察,下面还有一行提示 log4net
前面的代码里用到了log4net, 没任何错误提示, 能正确写入日志, 这里提到 无法识别的configuration section, 突然想起好像有人是通过修改 App.config解决了问题. 于是先删掉App.config里的log4net块, 果然成功运行! 原来 MySqlConnection open要从app.config里读取配置, 遇到这个块无法处理才出此提示, 再仔细研究, 在App.config最前面加入configSections就不会有错误提示, 也不用删除log4net块, 这个异常实在太少见, 解决思路也太奇怪, 顺便想对MySql.data问一句,这种错误关你什么事,别人都正常运行你跳出来干啥 ? 特此记录.
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>