我正在尝试连接到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类似。所以有人指出我,我做错了吗?
提前致谢。
答案 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