我正在尝试检查(在.net c#中)我是否能够连接到SQL服务器。但是,每当我在连接字符串中指定实例时,我就无法再连接了。 :
这有效:
builder.ConnectionString = "Server=DLS-534;user id=sa;password=Mypassword;initial catalog=master";
这不起作用:
builder.ConnectionString = "Server=DLS-534\\SQL_2008_R2_DEV;user id=sa;password=Mypassword;initial catalog=master";
为什么这不起作用?我确实需要能够连接到特定的实例,因为用户可能有几个dbs。
我的完整代码:
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder();
builder.ConnectionString = "Server=DLS-534\\SQL_2008_R2_DEV;user id=sa;password=Mypassword;initial catalog=master";
using (var connection = new SqlConnection(builder.ConnectionString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
答案 0 :(得分:5)
我的实例代码:
const string connStringWork = "Data Source=server\\instance;Initial Catalog=db;Integrated Security=True;Application Name=ЦС";
using (SqlConnection conn = new SqlConnection(connStringWork))
{
}
答案 1 :(得分:0)
好的,你编辑了你的问题......
- 忽略 ---
您正在2个位置分配连接字符串:
new SqlConnectionStringBuilder(GetConnectionString());
builder.ConnectionString = "..."
GetConnectionString()
做什么?如果用连接字符串替换它并省略第二个位置怎么办?
- 结束忽略 -
除此之外,互联网上有一个资源可以查找您需要的连接字符串:ConnectionStrings.com
选择您的数据库并找到您的字符串。如果你的字符串格式与它们的格式相同,那么你的参数一定有问题。
答案 2 :(得分:0)
我认为您忘记将值分配给您的connString。
SqlConnectionStringBuilder builder =
new SqlConnectionStringBuilder(GetConnectionString());
builder.ConnectionString = "Server=DLS-534\\SQL_2008_R2_DEV;user id=sa;password=Mypassword;initial catalog=master";
connString = builder;
using (var connection = new SqlConnection(connString))
{
try
{
connection.Open();
return true;
}
catch (SqlException)
{
return false;
}
}
答案 3 :(得分:0)
builder.ConnectionString = @"Server=DLS-534\SQL_2008_R2_DEV;user id=sa;password=Mypassword;initial catalog
使用@符号来转义\
答案 4 :(得分:0)
我认为这与在系统上设置SQL Server的方式有关。我相信可以以不需要实例名称的方式安装它(如果包含的话,将无法工作)。
因此,根据您安装SQL Server的方式,您可能需要提供实例名称,或者您可能不需要。
如果您不确定或无法控制安装方法,那么我会首先尝试使用实例名称(例如:Server=localhost\SQLServer2016Express
),如果它失败则作为后备尝试连接而不使用实例名称(只需连接到主机名)ex:Server=localhost
。
答案 5 :(得分:0)
尝试使用IP和端口:connectionString =“数据源= XXX.XXX.XXX.XXX,XXXX