You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 14:26:22