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

Visual Studio 2022中C# WinForms连接SQL Server失败求助

问题排查:WinForms连接SQL Server提示“无法连接到主机”

核心错误:误用MySQL驱动连接SQL Server

你要连接的是SQL Server,但代码里全程使用的是MySQL的驱动组件(MySql.Data.MySqlClient、MySqlConnection)——这是两种完全独立的数据库,驱动不通用,这是导致连接失败的根本原因。

修正步骤

1. 替换驱动与命名空间

  • 移除项目中MySql.Data相关的NuGet包引用
  • 保留/添加SQL Server的官方驱动:.NET Framework用System.Data.SqlClient,.NET 6+推荐用Microsoft.Data.SqlClient(通过NuGet安装)

2. 修正代码逻辑

因为你用SSMS是通过Windows身份验证直接连接,所以连接字符串采用相同模式,无需手动输入账号密码:

using System;
using System.Windows.Forms;
using System.Data.SqlClient; // 注意:SQL Server的命名空间

namespace Database_Project2
{
    public partial class Form3 : Form
    {
        // Windows身份验证的连接字符串(适配本地SQL Server)
        SqlConnection connection = new SqlConnection(@"Server=.\SQLEXPRESS;Database=BikeCompany;Integrated Security=True;");

        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {
            try
            {
                connection.Open();
                MessageBox.Show("数据库连接成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show($"连接失败:{ex.Message}");
            }
        }
    }
}

连接字符串关键点说明

  • Server=.\SQLEXPRESS:本地SQL Server Express实例的默认命名;如果是SQL Server默认实例,可写成Server=(local)或Server=127.0.0.1
  • Integrated Security=True:启用Windows身份验证,和你SSMS的连接逻辑一致
  • 若你的SQL Server是自定义命名实例,需替换为SSMS连接时显示的服务器名称

额外排查项

  • 确认SQL Server服务已启动:打开「服务」管理器,找到SQL Server(你的实例名),确保状态为「正在运行」
  • 检查SQL Server连接设置:在SSMS中右键服务器→「属性」→「连接」,勾选「允许远程连接到此服务器」(本地连接默认允许,可作为兜底检查)
  • 临时关闭防火墙测试:若本地连接仍失败,可临时关闭系统防火墙,排除端口拦截问题(SQL Server默认端口1433)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 15:55:06