我只想知道远程sql server express版的正确sql连接字符串。
这是我得到的,但我遇到了一些问题
SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\PC-NAME\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");
我在C#调试器中遇到了这个错误:
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
提前致谢!
答案 0 :(得分:10)
来自你的评论:
IP地址是静态IP地址。我想在大楼外连接。
如果您尝试连接的数据库位于具有目标地址的[路由器/防火墙/调制解调器]后面的计算机上,则需要在[路由器/防火墙/调制解调器]上使用端口转发来转发所有数据库TCP端口1433上的连接到目标机器。
如果您尝试连接到具有静态IP地址的ADSL调制解调器后面的家用计算机,则需要将ADSL调制解调器配置为端口转发,以将外部端口1433与内部地址上的相同端口连接。此 必须 在调制解调器上完成, 不能 仅使用连接字符串完成。
假设您有一个ADSL调制解调器侦听127.2.3.4(仅用于演示的无效地址)和一个IP地址为192.168.0.100的PC。配置调制解调器将端口1433转发到192.168.0.100:1433
(具体取决于调制解调器的品牌和型号)。然后您的连接字符串将是:
Data Source=127.2.3.4\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password
假设SQLEXPRESS
是服务器上唯一的数据库实例,并且由于端口1433是默认值,您可以使用更简单的:
Data Source=tcp:127.2.3.4;Initial Catalog=dbase;User ID=sa;Password=password
Network Library=DBMSSOCN
规范替换为tcp:
,并假设默认为实例和端口。
答案 1 :(得分:3)
解决方案:如果您要提供远程计算机IP address
,则无需提供hostname
试试这个:
SqlConnection cs = new SqlConnection(@"Data Source=(IP Address)\SQLEXPRESS,1433;Network Library=DBMSSOCN;Initial Catalog=dbase;User ID=sa;Password=password");
答案 2 :(得分:2)
为什么不尝试使用SqlConnection String Builder here。