我正在尝试编写一个与SQL Server数据库进行交互的程序。我在Mac上的Parallels上使用C#编程,并且SQL Server通过Docker运行。
但是我无法连接。每次尝试时,我都会遇到相同的错误。
我已经尝试通过以下方式允许在SQL Server上进行远程访问:
EXEC sp_configure 'remote access', 1 ;
GO
RECONFIGURE ;
GO
但这不能解决我的问题。
这是我的C#代码:
主班
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 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);
}
}
}
我总是收到此错误:
连接到SQL Server时与网络相关或特定于实例的错误。找不到服务器或无法访问服务器。验证实例名称正确,并且SQL Server允许远程连接。 (提供者:SQL网络接口,错误:25-连接字符串无效)
答案 0 :(得分:1)
MSSQLSERVER
是计算机上未命名的默认实例的实例名称-您绝对不能在连接字符串中使用该实例。
相反,请尝试以下代码行:
database = new Database("localhost", "user1", "topsecret", "master");
只需指定没有明确的实例名称-仅需为当前计算机使用localhost
(或(local)
或.
)即可,这就是您所需要的!
答案 1 :(得分:0)
这是Parallels的问题,因为Paralles无法访问本地主机。因此,我必须像这样在Visual Studio中的Parallels中定义IP:
database = new Database("10.211.55.2", "user1", "topsecret", "Time");