无法将 C# 连接到 SQL 服务器
Can't Connect C# with SQL Server
我正在尝试编写一个与我的 SQL 服务器数据库交互的程序。我在 Mac 上的 Parallels 上用 C# 编程,SQL 服务器是 运行 通过 Docker。
但我就是无法连接。我每次尝试都会遇到同样的错误。
我已经尝试允许远程访问 SQL 服务器:
EXEC sp_configure 'remote access', 1 ;
GO
RECONFIGURE ;
GO
但这并不能解决我的问题。
这是我的 C# 代码:
主要Class
Database database;
public Form1()
{
InitializeComponent();
database = new Database("localhost\MSSQLSERVER", "user1", "topsecret", "master"); // \
}
private void connect_button_Click(object sender, EventArgs e)
{
database.Connect();
}
数据库class:
class Database
{
SqlConnectionStringBuilder builder;
SqlConnection connection;
public Database(string source, string userid, string password, string initialcatalog){
this.builder = new SqlConnectionStringBuilder();
this.builder.DataSource = source;
this.builder.UserID = userid;
this.builder.Password = password;
this.builder.InitialCatalog = initialcatalog;
}
public void Connect()
{
try
{
// Connect to SQL
Console.WriteLine("Connecting to SQL Server ... ");
this.connection = new SqlConnection(this.builder.ConnectionString);
connection.Open();
Console.WriteLine("Connected");
}
catch(SqlException sqle)
{
Console.WriteLine(sqle.Message);
}
}
}
我总是收到这个错误:
Network-related or instance-specific error when connecting to SQL Server. The server was not found or can not be accessed. Verify that the instance name is correct and that SQL Server allows remote connections. (provider: SQL Network Interfaces, error: 25 - connection string invalid)
MSSQLSERVER
是您计算机上未命名的默认 实例的实例名称 - 您不得 使用它在连接字符串中。
改为尝试这行代码:
database = new Database("localhost", "user1", "topsecret", "master");
只需指定根本没有显式实例名称 - 只需为当前机器指定localhost
(或(local)
,或.
) -这就是您所需要的!
这是 Parallels 的问题,因为 Parallels 无法访问本地主机。所以我必须像这样在 Visual Studio 中定义来自 Parallels 的 IP:
database = new Database("10.211.55.2", "user1", "topsecret", "Time");
我正在尝试编写一个与我的 SQL 服务器数据库交互的程序。我在 Mac 上的 Parallels 上用 C# 编程,SQL 服务器是 运行 通过 Docker。
但我就是无法连接。我每次尝试都会遇到同样的错误。
我已经尝试允许远程访问 SQL 服务器:
EXEC sp_configure 'remote access', 1 ;
GO
RECONFIGURE ;
GO
但这并不能解决我的问题。
这是我的 C# 代码:
主要Class
Database database;
public Form1()
{
InitializeComponent();
database = new Database("localhost\MSSQLSERVER", "user1", "topsecret", "master"); // \
}
private void connect_button_Click(object sender, EventArgs e)
{
database.Connect();
}
数据库class:
class Database
{
SqlConnectionStringBuilder builder;
SqlConnection connection;
public Database(string source, string userid, string password, string initialcatalog){
this.builder = new SqlConnectionStringBuilder();
this.builder.DataSource = source;
this.builder.UserID = userid;
this.builder.Password = password;
this.builder.InitialCatalog = initialcatalog;
}
public void Connect()
{
try
{
// Connect to SQL
Console.WriteLine("Connecting to SQL Server ... ");
this.connection = new SqlConnection(this.builder.ConnectionString);
connection.Open();
Console.WriteLine("Connected");
}
catch(SqlException sqle)
{
Console.WriteLine(sqle.Message);
}
}
}
我总是收到这个错误:
Network-related or instance-specific error when connecting to SQL Server. The server was not found or can not be accessed. Verify that the instance name is correct and that SQL Server allows remote connections. (provider: SQL Network Interfaces, error: 25 - connection string invalid)
MSSQLSERVER
是您计算机上未命名的默认 实例的实例名称 - 您不得 使用它在连接字符串中。
改为尝试这行代码:
database = new Database("localhost", "user1", "topsecret", "master");
只需指定根本没有显式实例名称 - 只需为当前机器指定localhost
(或(local)
,或.
) -这就是您所需要的!
这是 Parallels 的问题,因为 Parallels 无法访问本地主机。所以我必须像这样在 Visual Studio 中定义来自 Parallels 的 IP:
database = new Database("10.211.55.2", "user1", "topsecret", "Time");