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

连接SQL Server时抛出异常,da.Fill行出现SqlClient.SqlException错误求助

解决SQL Server连接错误(Named Pipes Provider, error:40)

嘿,这个错误我之前排查过好多次,在da.Fill()触发的这个连接问题,多半是网络配置或者实例设置出了岔子,咱们一步步来搞定:

  • 先确认实例名称没写错
    你连接字符串里的实例名是不是准确?默认实例直接填localhost或者服务器IP就行,如果是命名实例得写成服务器名\实例名(比如DESKTOP-ABC123\SQLEXPRESS)。不确定的话,打开SQL Server配置管理器,看「SQL Server服务」里的实例名称,确保和连接字符串里的完全一致。

  • 检查SQL Server服务是否在运行
    按下Win+R输入services.msc,找到对应你的SQL Server服务(比如「SQL Server (SQLEXPRESS)」),看看状态是不是「正在运行」,要是没启动就右键点「启动」。

  • 开启SQL Server的远程连接权限
    打开SQL Server Management Studio(SSMS),先连到本地实例,右键服务器→「属性」→「连接」,勾选「允许远程连接到此服务器」。接着去SQL Server配置管理器里,找到「SQL Server网络配置」→对应实例的协议,确保Named Pipes和TCP/IP都是启用状态(右键点「启用」就行)。

  • 防火墙要给SQL Server开绿灯
    默认SQL Server用的是1433端口(命名实例可能是动态端口),你得在Windows防火墙里添加入站规则,允许1433端口的TCP连接;或者直接找到SQL Server的程序,允许它通过防火墙。如果是命名实例,也可以在配置管理器里给它固定一个端口,这样防火墙配置更方便。

  • 核对连接字符串的正确性
    贴出来你的连接字符串看看?正常的格式大概是这样:

    "Data Source=服务器名\\实例名;Initial Catalog=你的数据库名;Integrated Security=True;"
    

    要是用SQL身份验证,就得加上User ID=你的账号;Password=你的密码;。注意转义符的问题,C#里字符串里的反斜杠要写两个\\哦。

  • 先测试本地连接是否正常
    先用SSMS试试能不能连接到目标实例,如果SSMS都连不上,那肯定是服务器端的配置问题;如果SSMS能连上但代码不行,那大概率是连接字符串写错了,再仔细核对一遍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:57:58