与 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 中一样。那么有人可以指出我,我做错了哪里吗?
提前谢谢。
试试这个
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