如何实现远程连接数据库服务器
(SQL Server 2005 + Visual Studio 2005)
(1)配置服务器端
打开“SQL Server 外围应用配置器”--》选择“服务和连接的外围应用配置器”–》选择“服务器端(SQLEXPRESS)”--》点击“远程连接”,选择“本地连接和远程连接”,选择“同时使用TCP/IP和Named pipes”; 启动“SQL Server Browser”,选择自动;
(2)进行服务器端网络配置
打开“SQL Server Configuration Manager”--》点击“SQL Server 2005网络
配置”–》点击“SQLEXPRESS的协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“IP地址”,设置“TCP动态端口”为空,设置“TCP端口”为1433;
(3)进行客户端网络配置
打开“SQL Server Configuration Manager”--》点击“SQL Native Client配置”
–》点击“客户端协议”--》确保“Named Pipes”和“TCP/IP”都启用–》右键点击“TCP/IP ”选择属性,选择“协议”,确认“默认端口”为1433;
(4)设置SQL Server服务器实例
右键点击服务器实例–》选择“属性”–》选择“连接”–》在“允许远程连接到此服务器”前打勾;
(5)防火墙设置
对系统中使用的防火墙(包括ESET和windows自带的防火墙),选择关闭,或者设置例外(允许某个程序或者某个端口)
(6)检查客户端和服务器端是否连通,端口是否打开
telnet ip 1433 //ip即为服务器的IP地址,1433是sql server的默认端口,这
个要根据第(2)(3)步骤中设置的来。
(7)连接字符串
con.ConnectionString = "Data Source=10.200.32.140; Initial catalog=HR;
User Id=sa; Password=niit#1234";//只使用ip
con.ConnectionString = "Data Source=10.200.32.140,1433; Initial catalog=HR;
User Id=sa; Password=niit#1234";//ip+端口
con.ConnectionString = "Data Source=10.200.32.140\sqlexpress; Initial catalog=HR;
User Id=sa; Password=niit#1234";//ip+实例名
测试代码
SqlConnection con = new SqlConnection();
//con.ConnectionString = "Data Source=10.20.66.18,1433; Initial Catalog=HR; Network Library=DBMSSOCN;User Id= sa; Password=niit#1234;Integrated
Security=SSPI";
con.ConnectionString = "Data Source=10.200.32.140,1433; Initial Catalog=HR;
User Id=sa;Password=niit#1234";
con.Open();
SqlCommand cmd = new SqlCommand();
mandText = "Select cPassword from dbo.HRusers where
cUserName='aaa'";
cmd.Connection = con;
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
Console.WriteLine(dr[0].ToString());
Console.ReadLine();
dr.Close();
con.Close();
登录界面:
【错误1】在建立与服务器的连接时出错。
在连接到SQL Server 2005 时,在默认的设置下SQL Server 不允许进行远程连接可能会导致此失败。
(provider: TCP 提供程序, error: 0 - 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
) 【原因】没有配置好SQL Server 2005的1433端口,可以用Telnet 10.200.32.140 1433命令进行测试,如果不能连接,则要开启SQL Server 2005的1433端口。
具体开启,请见步骤(2)和(3)。