在Web.Config中存储连接字符串的位置?

时间:2011-03-25 22:01:30

标签: asp.net web-config connection-string appsettings

我们可以通过两种方式将连接字符串存储在Web.config文件中。一个是

<connectionStrings>
    <clear/>
    <add name="LocalSqlServer"
          connectionString="Data Source=(local);Initial Catalog=aspnetdb;Integrated Security=True"
          providerName="System.Data.SqlClient" />
</connectionStrings>


其他人是

<appSettings>
     <add key="ConnectionString"
       value="server=localhost;database=Northwind;uid=sa;password=secret;" />
</appSettings>

现在我想知道
这两种方法有什么区别?
哪一个更好的方法?
他们的局限是什么?

更新:您能否解释<connectionString><appSetting>有明显优势?

6 个答案:

答案 0 :(得分:13)

connectionStrings部分专用连接字符串,仅在.NET 2.0中引入。

appSettings更通用,可用于其他应用程序设置。

您应该使用connectionStrings部分,因为它也可以encrypted与其他任何设置分开。

答案 1 :(得分:6)

第一种方法可以通过SQLDataSource等一些数据控件直接访问。

答案 2 :(得分:5)

使用connectionStrings元素是处理连接字符串的最合适方式。 appSettings元素是在.NET 2.0之前用于处理连接字符串的方式。您可以使用任一方法,但如果使用connectionString元素,则可能更容易使用多个连接字符串。如果在appSettings中存储了多个连接字符串,则必须先解析每个名称(或值),以确定它是否为连接字符串,然后才能使用它。这导致维护问题。检查是否存在所有connectionString项更容易。

答案 3 :(得分:2)

如果您将连接字符串添加到appSettings部分,则需要使用ConfigurationManager.AppSettings.Get(key)方法手动检索它们。

通过将连接字符串添加到connectionStrings element,.NET可以在创建连接对象时自动按名称查找这些字符串。

答案 4 :(得分:1)

connection-string部分声明了system的连接。我的意思是你的应用程序知道你的字符串是connectionString。如果你将appSettings用于应用程序,它只是任何字符串值。

答案 5 :(得分:0)

除了其他答案中提到的好处之外,connectionStrings元素还有一个providerName元素,appSettings元素没有。如果您的数据源 SQL Server。

,这将非常有用