连接串有引号,如何传给SqlConnection

Connection string has quotation mark, how to pass it to SqlConnection

我在我的项目中创建了一个 LocalDB 数据库,它的连接字符串是:

Data Source=(LocalDB)\v11.0;AttachDbFilename="E:\Projects\visual studio 2013\Projects\sqlce\mydb.mdf";Integrated Security=True;Connect Timeout=30

我该如何传递给SqlConnection()

请注意,它有一个引号内的地址。我做错了什么吗?

我想即使我正确编程它也无法在另一台没有那个 .mdf 文件的计算机上运行。不是吗?

我怎样才能拥有一个带有可移植数据库的程序,以便我可以轻松地发布我的 pp?

将 mdf 文件添加到您的解决方案,并将 属性 "Copy to Output Directory" 更改为始终复制。不要在连接字符串中硬编码 mdf 文件路径。在 app.config 或 web.config 文件中添加连接字符串,如下所示:

  <connectionStrings>
    <add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;AttachDbFilename=|DataDirectory|\myDB.mdf;Initial Catalog=MyDatabaseName;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>

然后您可以在 C# 代码中访问连接字符串,如下所示:

string conStr = System.Configuration.ConfigurationManager.ConnectionStrings["DefaultConnection"].ToString()

如果您在访问 mdf 文件时遇到任何错误,您可以使用 AppDomain.CurrentDomain.SetData() 方法在 C# 代码中设置 DataDirectory。

<connectionStrings>
  <add 
    name="NorthwindConnectionString" 
    connectionString="Data Source=serverName;Initial 
    Catalog=Northwind;Persist Security Info=True;User 
    ID=userName;Password=password"
    providerName="System.Data.SqlClient"
  />
</connectionStrings>

您可以通过

访问
connString =rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"];

More about connection string

SqlConnection con = new SqlConnection(connstring);

或者你也可以这样

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString);