.NET Core连接MySQL 8.0数据库报错,求问题排查与解决
问题分析与解决方案
错误根源
你遇到的ConfigurationErrorsException是因为MySQL.Data 8.3.0包在.NET Core环境下存在配置系统兼容性问题。这个包最初为.NET Framework设计,依赖传统的app.config配置节,而.NET Core的配置模型完全不同,导致初始化时无法识别配置节引发错误。
解决步骤
1. 替换MySQL.Data为MySqlConnector包
卸载当前的MySQL.Data包,安装MySqlConnector(官方推荐的、专为.NET/.NET Core优化的MySQL驱动):
dotnet remove package MySQL.Data dotnet add package MySqlConnector
2. 修正代码中的参数绑定错误
你的代码中AddWithValue的第一个参数传错了,应该是参数名@countryName,而非变量countryName的值:
// 错误写法 command.Parameters.AddWithValue(countryName, countryName); // 正确写法 command.Parameters.AddWithValue("@countryName", countryName);
3. 优化代码的资源释放逻辑
利用using语句自动释放资源,无需手动调用Close(),同时修正SQL字段名错误(world数据库的country表中国家名字段是Name,不是countryName):
string countryName = "Chile"; var builder = new MySqlConnectionStringBuilder() { Server = "localhost", Port = 3306, UserID = "xxxx", Password = "xxxx", Database = "world" }; string connString = builder.ToString(); string query = "select code from country where Name = @countryName"; DataTable dataTable = new DataTable(); using (MySqlConnection conn = new MySqlConnection(connString)) using (MySqlCommand command = new MySqlCommand(query, conn)) { command.Parameters.AddWithValue("@countryName", countryName); conn.Open(); using (var reader = command.ExecuteReader()) { dataTable.Load(reader); } }
验证
替换包并修正代码后,重新运行程序即可正常连接MySQL数据库并执行查询。
内容的提问来源于stack exchange,提问作者Deepak Dutta
相关产品推荐
相关产品推荐

