MS-SQL Server在Visual C#项目中无法连接的问题排查求助
问题解决方法
核心代码错误修复
你当前代码的核心问题是拼接连接字符串时,直接引用了servername_tBox、username_tBox、password_tBox三个文本框控件对象,没有获取控件的Text属性值,导致生成的连接字符串里填充的是控件的类名而非你输入的服务器地址、账号和密码,所以连接失败。
只需要修改连接字符串拼接的代码即可:
// 修正后的连接字符串代码,追加.Text获取输入框内容 string connection_str = "server = " + servername_tBox.Text + "; database = dblab03; user id = " + username_tBox.Text + "; password = " + password_tBox.Text;
可选优化&额外排查点
如果修改后仍然连接失败,可以按以下步骤排查:
- 检查服务器名输入是否和SSMS中连接使用的完全一致,若使用SQL Server命名实例需要带上实例名,格式为
主机地址\实例名 - 确认系统防火墙没有拦截Visual Studio的网络连接请求,VS运行权限和SSMS运行权限保持一致
- 推荐使用
SqlConnectionStringBuilder拼接连接字符串,避免手动拼接出现的转义、格式错误问题,示例如下:
SqlConnectionStringBuilder connBuilder = new SqlConnectionStringBuilder(); connBuilder.DataSource = servername_tBox.Text; connBuilder.InitialCatalog = "dblab03"; connBuilder.UserID = username_tBox.Text; connBuilder.Password = password_tBox.Text; string connection_str = connBuilder.ConnectionString;
- 可以先把连接字符串写死为SSMS中可正常连接的参数测试,验证连接逻辑正常后再换回动态读取输入的模式
内容的提问来源于stack exchange,提问作者MH11
相关产品推荐
相关产品推荐

