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

Asp.net MVC连接本地SQL Server返回Null问题求助

排查ASP.NET MVC连接SQL Server返回Null的问题

兄弟,我帮你一步步捋这个返回Null的问题,看你的代码,大概率是这几个环节掉坑里了:

1. 连接字符串的配置方式完全错了!

你现在直接把完整的连接字符串当成key传给ConfigurationManager.ConnectionStrings[],这根本不对!正常操作是先在Web.config里配置连接字符串节点:

<connectionStrings>
  <add name="GeologConnection" 
       connectionString="Data Source=MACHINE-VOIV7EH\SQLEXPRESS;Initial Catalog=geolog;Persist Security Info=False;Integrated Security=True" />
</connectionStrings>

然后在代码里通过名称获取连接字符串:

string constr = ConfigurationManager.ConnectionStrings["GeologConnection"].ConnectionString;

你之前的写法会导致ConfigurationManager找不到对应的节点,拿到的constr是null,后续创建SqlConnection肯定出问题,这是最可能导致返回Null的原因!

2. Dapper的Query调用不完整

你的代码里SqlMapper.Query&…明显是截断了,正确的Dapper调用必须指定泛型类型,并且传入有效的SQL语句,比如:

IList<Bob> EmpList = SqlMapper.Query<Bob>(con, "SELECT * FROM YourBobTableName").ToList();

另外,先去SSMS里跑一遍你的SQL语句,确认能查到数据——如果数据库里本身就没数据,那返回空列表也正常,但你说的是返回Null,所以还是先解决连接的问题。

3. 缺失异常处理和连接释放

你的GetAllBobs只有try块,既没catch看错误,也没finally关连接!就算连接失败或者SQL报错,你也看不到任何提示,而且连接会一直占用,时间长了搞垮连接池。改成这样:

public List<Bob> GetAllBobs()
{
    try
    {
        connection();
        con.Open();
        var empList = SqlMapper.Query<Bob>(con, "SELECT * FROM YourBobTableName").ToList();
        return empList;
    }
    catch (Exception ex)
    {
        // 这里打日志或者直接输出ex.Message,就能看到具体错误了
        // 比如是连接失败,还是SQL语法错了
        throw; // 或者根据需求返回空列表
    }
    finally
    {
        // 必须确保连接被关闭释放
        if (con != null && con.State == System.Data.ConnectionState.Open)
        {
            con.Close();
            con.Dispose();
        }
    }
}

4. 实体类Bob和数据库表的映射要匹配

Dapper是按名称匹配属性和列的,要确保Bob类的属性名和数据库表的列名一致(大小写不敏感,但名称要对)。比如数据库列是BobName,你的类里是Name,那Dapper就映射不到,返回的对象属性会是默认值,但如果是返回Null,还是前面的连接问题更可能。

5. 确认SQL Server服务在运行

打开Windows服务管理器,找到SQL Server (SQLEXPRESS),看看是不是处于运行状态。另外,你的连接字符串没写用户名密码,默认用Windows身份验证,要确保你的账号有权限访问geolog数据库。

先把连接字符串的问题改了,然后加异常处理看具体错误,应该就能解决了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:41:23