与 SQL 服务器建立连接时出错

本文关键字:出错 连接 建立 SQL 服务器 | 更新日期: 2023-09-27 18:34:30

我正在尝试连接到sqlServer。为此,我使用以下代码:

string server = "1.1.1.1,1433";
var stringBuilder = new SqlConnectionStringBuilder
                    {
                        UserID = "id",
                        Password = "pass",
                        MultipleActiveResultSets = true,
                        DataSource = server,
                        NetworkLibrary = "DBMSSOCN",
                        InitialCatalog = "iCatalog"
                    };

using (var con = new SqlConnection(stringBuilder.ToString()))
{
    try
    {
        con.Open();
        MessageBox.Show("Connected");
    }
    catch (Exception exception)
    {
        MessageBox.Show(exception.Message);
    }
}

但是当程序尝试打开连接时,我收到异常"建立与sql Server的连接时发生与网络相关或特定于实例的错误......"。如果我像这样将 ipAddress 和端口更改为服务器名称和实例:

var server = @"MSSQL01'SQLENTW";

我能够连接到服务器。ConnectionString 就像在 connectionstrings.com 中一样。那么有人可以指出我,我做错了哪里吗?

提前谢谢。

与 SQL 服务器建立连接时出错

试试这个

string server = "1.1.1.1:1433";

我认为您的机器正在运行SQL Server的多个实例。例如。MACHINENAME''SQLEXPRESS, MACHINENAME''MSSQLSERVER, etc

当您提供 IP 地址时,它会连接到默认实例。由于它未启用 TCP/IP,因此返回错误。您可以转到 sql Server 配置(配置工具-> SQL Server 配置实用程序(,并检查为所有实例启用的 tcp。

添加实例名称怎么样?

1.1.1.1'SQLENTW,1433

除了上述之外,还可以使用以下 spinet 来查找 SQLServer 正在侦听的端口

DECLARE @PORT nvarchar(20), @key nvarchar(100)  
IF CHARINDEX(''',@@SERVERNAME,0) <>0  
BEGIN  
           SET @KEY = 'SOFTWARE'MICROSOFT'MICROSOFT SQL SERVER'' +@@SERVICENAME+  
                                                                                           ''MSSQLSERVER'SUPERSOCKETNETLIB'TCP'  
END  
ELSE  
BEGIN  
          SET @KEY = 'SOFTWARE'MICROSOFT'MSSQLSERVER'MSSQLSERVER'SUPERSOCKETNETLIB'TCP'  
END  
EXEC MASTER..XP_REGREAD @ROOTKEY='HKEY_LOCAL_MACHINE', @KEY=@KEY, @VALUE_NAME='TCPPORT', @VALUE=@PORT OUTPUT  
SELECT @PORT