C# 与sql server建立连接时出错

C# 与sql server建立连接时出错,c#,sql-server,C#,Sql Server,我正在尝试连接到sqlServer。为此,我使用以下代码: string server = "1.1.1.1,1433"; var stringBuilder = new SqlConnectionStringBuilder { UserID = "id", Password = "pass", MultipleA

我正在尝试连接到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和port更改为serverName和instance,如下所示:

var server = @"MSSQL01\SQLENTW";
我能够连接到服务器。ConnectionString与ConnectionString.com中的类似。有人能告诉我我做错了什么吗

提前谢谢。

试试这个

string server = "1.1.1.1:1433";
试试这个

string server = "1.1.1.1:1433";
试试这个

string server = "1.1.1.1:1433";
试试这个

string server = "1.1.1.1:1433";

我认为您的计算机正在运行多个SQL Server实例例如MACHINENAME\SQLEXPRESS、MACHINENAME\MSSQLSERVER等


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

我认为您的计算机正在运行多个sql Server实例例如MACHINENAME\SQLEXPRESS、MACHINENAME\MSSQLSERVER等


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

我认为您的计算机正在运行多个sql Server实例例如MACHINENAME\SQLEXPRESS、MACHINENAME\MSSQLSERVER等


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

我认为您的计算机正在运行多个sql Server实例例如MACHINENAME\SQLEXPRESS、MACHINENAME\MSSQLSERVER等


当您提供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 
声明@PORT-nvarchar(20),@key-nvarchar(100)
如果CHARINDEX(“\”,@@SERVERNAME,0)0
开始
SET@KEY='SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\'+@@SERVICENAME+
“\MSSQLSERVER\SUPERSOCKETNETLIB\TCP”
结束
其他的
开始
SET@KEY='SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'
结束
EXEC MASTER..XP_重新读取@ROOTKEY='HKEY_LOCAL_MACHINE',@KEY=@KEY,@VALUE\u NAME='TCPPORT',@VALUE=@PORT输出
选择@PORT

添加实例名称怎么样

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 
声明@PORT-nvarchar(20),@key-nvarchar(100)
如果CHARINDEX(“\”,@@SERVERNAME,0)0
开始
SET@KEY='SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\'+@@SERVICENAME+
“\MSSQLSERVER\SUPERSOCKETNETLIB\TCP”
结束
其他的
开始
SET@KEY='SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'
结束
EXEC MASTER..XP_重新读取@ROOTKEY='HKEY_LOCAL_MACHINE',@KEY=@KEY,@VALUE\u NAME='TCPPORT',@VALUE=@PORT输出
选择@PORT

添加实例名称怎么样

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 
声明@PORT-nvarchar(20),@key-nvarchar(100)
如果CHARINDEX(“\”,@@SERVERNAME,0)0
开始
SET@KEY='SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\'+@@SERVICENAME+
“\MSSQLSERVER\SUPERSOCKETNETLIB\TCP”
结束
其他的
开始
SET@KEY='SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'
结束
EXEC MASTER..XP_重新读取@ROOTKEY='HKEY_LOCAL_MACHINE',@KEY=@KEY,@VALUE\u NAME='TCPPORT',@VALUE=@PORT输出
选择@PORT

添加实例名称怎么样

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 
声明@PORT-nvarchar(20),@key-nvarchar(100)
如果CHARINDEX(“\”,@@SERVERNAME,0)0
开始
SET@KEY='SOFTWARE\MICROSOFT\MICROSOFT SQL SERVER\'+@@SERVICENAME+
“\MSSQLSERVER\SUPERSOCKETNETLIB\TCP”
结束
其他的
开始
SET@KEY='SOFTWARE\MICROSOFT\MSSQLSERVER\MSSQLSERVER\SUPERSOCKETNETLIB\TCP'
结束
EXEC MASTER..XP_重新读取@ROOTKEY='HKEY_LOCAL_MACHINE',@KEY=@KEY,@VALUE\u NAME='TCPPORT',@VALUE=@PORT输出
选择@PORT

您是否在端口1433上运行SQL server?由于您没有使用默认实例名称,默认情况下,它将在随机分配的端口(而不是1433)上运行。您是否在端口1433上运行SQL server?由于您没有使用默认实例名称,默认情况下,它将在随机分配的端口(而不是1433)上运行。您是否在端口1433上运行SQL server?由于您没有使用默认实例名称,默认情况下,它将在随机分配的端口(而不是1433)上运行。您是否在端口1433上运行SQL server?由于您没有使用默认实例名称,因此默认情况下,它将在随机分配的端口(不是1433)上运行。是否检查了端口号?是否检查了端口号?是否检查了端口号?是否检查了端口号?是否可以解释它的确切位置。我在sql server配置中