web.config和connectionStrings中的引号是什么意思?

5

我有以下连接字符串,你会注意到"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个回答

7

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

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


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>

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"/>

1

在 web.config 文件中使用特殊字符时,应该使用 ' 代替撇号,使用 &quot ; 代替引号。

然而,正如其他人所建议的那样,你只需要删除引号,因为它们是不必要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接