带有实例参数的SQL连接字符串

时间:2013-01-24 06:43:18

标签: c# asp.net sql sql-server c#-4.0

我正在尝试检查(在.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;
                }
            }

6 个答案:

答案 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个位置分配连接字符串:

  1. new SqlConnectionStringBuilder(GetConnectionString());
  2. builder.ConnectionString = "..."
  3. 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