与sql server建立连接时出错

时间:2013-10-09 12:56:45

标签: c# sql-server

我正在尝试连接到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,并将实例更改为:

var server = @"MSSQL01\SQLENTW";

我可以连接到服务器。 ConnectionString与connectionstrings.com类似。所以有人指出我,我做错了吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

试试这个

string server = "1.1.1.1:1433";

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

如何添加实例名称?

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