连接到远程SQL Server数据库时出错
本文关键字:数据库 出错 Server SQL 连接 | 更新日期: 2023-09-27 18:16:43
我的问题很简单:我在Visual Studio 2010中用。net 4.0 c#编写一个WinForms应用程序,它在我的计算机上运行得很好。
通过System.Data.SqlClient
的SqlConnection
连接到远程SQL Server数据库。
当程序加载第一个表单时,它运行以下代码:
SqlConnection ACconnection = new SqlConnection(String.Format(
"Server=xxx.xx.xxx.xxx''TEST;Database=REP01;User Id={0};Password={1};", User, Password));
private bool TestConnection()
{
try
{
ACconnection.Open();
lbl_connectionStatus.Text = "Server: Connected";
lbl_connectionStatus.ForeColor = Color.FromArgb(0, 150, 30);
ACconnection.Close();
return true;
}
catch (Exception ex)
{
Functions.GetError(ex);
return false;
}
}
我得到错误:
SQL Network Interfaces, error: 26
我的问题是,即使它在我的电脑上工作得很好,它几乎不会在其他任何地方工作。我试用过的所有电脑都运行Windows 7或Windows 8,包括我的电脑。
我已经在谷歌上搜索了这个错误,但所有的答案都集中在服务器端,因为它在我的电脑上工作得很好,我知道这不是服务器端问题。
假设您已经解决了防火墙问题(要么关闭SQL Server框上的防火墙,要么确保在端口1433有一个漏洞,或者您的SQL Server实例配置使用的任何端口),请确保启用远程连接:
在运行SQL Server实例的SQL Server Management Studio中,连接到您的实例,右键单击左侧窗格中的服务器实例,然后选择"Properties"。单击"连接"选项卡,并确保选中"允许远程连接到此服务器"。
最后启动你的"SQL Server配置管理器"工具,并确保你有共享内存,TCP/IP,和命名管道所有启用客户端协议为您的客户端配置。对于32位和64位,您都需要这样做。
你应该可以走了。
我明白了!问题是,即使我在连接字符串中只给出实例名称而没有端口。所以最终我的代码被关闭了。解决方案:同时给出实例名和端口。
SqlConnection ACconnection = new SqlConnection(String.Format(
"Server=xxx.xx.xxx.xxx''TEST,49232;Database=REP01;User Id={0};Password={1};", User, Password));