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

Asp.net创建MySqlConnection时触发System.NullReferenceException错误求助

解决你的ASP.NET连接MySQL时的NullReferenceException问题

咱们先从最可能引发这个异常的根源说起:

1. 连接字符串键名大小写不匹配!

C#是大小写敏感的语言,你看你的配置文件和代码里的键名不一致:

  • web.config里的键是 MysqlConnectionstring(最后一个字母是小写的g)
  • 代码里获取的是 WebConfigurationManager.AppSettings["MysqlConnectionString"](最后一个字母是大写的G)

这就导致ConnectionstringMaster变量拿到的是null,创建MySqlConnection的时候自然会触发NullReferenceException!

修复方法:
把代码里的这行:

private string ConnectionstringMaster = WebConfigurationManager.AppSettings["MysqlConnectionString"];

改成和配置文件一致的键名:

private string ConnectionstringMaster = WebConfigurationManager.AppSettings["MysqlConnectionstring"];

或者更规范一点,统一改成大驼峰命名(比如MySqlConnectionString),同时修改web.config里的键名,这样后续维护更清晰。

2. 其他需要优化的问题(避免后续踩坑)

杜绝SQL注入风险

你现在用字符串拼接写SQL语句的方式非常危险,很容易被SQL注入攻击,必须改成参数化查询:

// 替换原来的Query写法
string Query = "select ID,Name,CountryCode,District from world.city where ID=@Id";
using (var command= new MySqlCommand(Query,connection))
{
    // 添加参数,避免注入
    command.Parameters.Add(new MySqlParameter("@Id", MySqlDbType.VarChar) { Value = Id });
    // 或者用简化版的AddWithValue,不过指定类型更安全
    // command.Parameters.AddWithValue("@Id", Id);
    
    connection.Open();
    using (var sdr=command.ExecuteReader())
    {
        while (sdr.Read())
        {
            stud1.FirstName = sdr["Name"].ToString();
        }
    }
}

检查模型属性匹配

你给stud1.FirstName赋值,但数据库查询的是Name字段,要确保你的studentsModel类里确实有FirstName这个属性,或者如果字段对应应该是Name的话,要调整属性名,避免赋值无效。

优化异常排查日志

现在的catch块只记录了异常信息,建议加上连接字符串是否为空的判断,方便快速排查:

catch (Exception e)
{
    Logger.Info($"连接字符串是否为空:{ConnectionstringMaster == null}");
    Logger.Info("inside Exception Repo Userregistration "+e.ToString());
    return stud1;
}

3. 后续验证步骤

  1. 先修复连接字符串的键名问题,确保能正确获取到连接字符串
  2. 替换成参数化查询
  3. 检查MySQL服务是否正常启动,确认连接字符串里的服务器地址、端口、用户名、密码都是正确的(比如localhost是否能访问,端口是不是3306,密码1234是否正确)

内容的提问来源于stack exchange,提问作者jan411

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 16:37:36