PC2远程访问PC1上SQL Server数据库失败的解决步骤咨询
解决PC2访问PC1上SQL Server实例的连接问题
针对你遇到的SQL Server连接错误(Error 26),按以下步骤逐一排查修复:
1. 启用SQL Server远程连接
- 在PC1上打开SQL Server Management Studio(SSMS),连接到
pc1\SQLEXPRESS实例 - 右键实例名称 → 属性 → 连接选项卡,勾选「允许远程连接到此服务器」
- 重启SQL Server服务:按下Win+R输入
services.msc,找到「SQL Server (SQLEXPRESS)」,右键选择重启
2. 启动并设置SQL Server Browser服务
- 在PC1的服务管理器(
services.msc)中找到「SQL Server Browser」 - 将启动类型改为自动,然后点击启动
- 该服务负责对外暴露SQL Server实例的位置信息,没有它PC2无法定位到SQLEXPRESS实例
3. 配置Windows防火墙允许通信
- 在PC1的Windows Defender防火墙中添加两条入站规则:
- 允许TCP端口1433(SQL Server默认端口)的传入连接
- 允许UDP端口1434(SQL Server Browser使用的端口)的传入连接
- 或者直接选择允许「SQL Server (SQLEXPRESS)」和「SQL Server Browser」这两个程序通过防火墙
4. 验证连接字符串与网络连通性
- 在PC2上按下Win+R输入
ping pc1,确认能正常ping通PC1;如果ping不通,将连接字符串中的pc1替换为PC1的IP地址(比如192.168.1.100\SQLEXPRESS) - 确保代码中的连接字符串和配置文件一致,建议代码从配置文件读取连接字符串,避免硬编码(参考下方完善后的代码)
5. 检查SA账户的有效性
- 在PC1的SSMS中,展开「安全性」→「登录名」→右键
sa→ 属性:- 切换到状态选项卡,确保「登录」设置为启用
- 切换到用户映射选项卡,勾选
Appointments数据库,并授予db_datareader等必要权限
6. 完善查询按钮代码(连接成功后需补充)
当前代码仅创建了连接对象,未执行查询和绑定数据,修复连接后可使用以下代码:
Private Sub Searchbtn_Click(sender As Object, e As EventArgs) Handles Searchbtn.Click ' 从配置文件读取连接字符串,避免硬编码 Dim connStr As String = My.Settings.AppointmentsConnectionString ' Using语句自动释放资源 Using connection As New SqlConnection(connStr) Try connection.Open() ' 替换为你的实际查询语句 Dim query As String = "SELECT * FROM 你的表名" Using adapter As New SqlDataAdapter(query, connection) Dim dataTable As New DataTable() adapter.Fill(dataTable) ' 将数据绑定到数据网格控件(替换为你的控件名) DataGridView1.DataSource = dataTable End Using Catch ex As Exception MessageBox.Show("操作出错:" & ex.Message) End Try End Using End Sub
内容的提问来源于stack exchange,提问作者Awit
相关产品推荐
相关产品推荐

