web.config和connectionStrings中的引号

时间:2009-09-11 07:51:12

标签: .net web-config

我有以下连接字符串,您会注意到“Provider's.Tests”,请注意单引号,如何将其输入web.config以使其有效?

<connectionStrings>
    <clear/>
    <add name="Provider" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename="C:\Projects\Provider's.Tests\app_data\db.mdf";Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

4 个答案:

答案 0 :(得分:7)

我认为问题不在于Provider's,而是路径周围的双引号。
尝试删除它,使其显示为AttachDbFilename=C:\Projects\Provider's.Tests\app_data\db.mdf;

如果连接字符串中有重要信息,请尝试对其进行编码: AttachDbFilename=&quot;C:\Projects\Provider's.Tests\app_data\db.mdf;&quot;

答案 1 :(得分:2)

您应该对引号和引号进行编码。引号(“)使用&quot;进行编码,撇号(')使用&apos;进行编码。这里的主要问题是引号,它可能仍然可以在不对撇号进行编码的情况下使用引号价值观。

<connectionStrings>
    <clear/>
    <add name="Provider" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;C:\Projects\Provider&apos;s.Tests\app_data\db.mdf&quot;;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
</connectionStrings>

答案 2 :(得分:1)

你应该使用'撇号和&amp; quot;有关在web.config文件中使用此类特殊字符的引号。

但是,正如其他人所建议的那样,您只需要删除报价,因为它们不是必需的。

答案 3 :(得分:1)

在您的情况下,单引号不是问题。这是文件名周围的双引号。你可以这样逃避它:

<add 
    name="Provider" 
    connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=&quot;C:\Projects\Provider's.Tests\app_data\db.mdf&quot;;Integrated Security=True;User Instance=True" 
    providerName="System.Data.SqlClient"/>