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

jam*_*ams 1 asp.net connection-string web-config appsettings

我们可以在Web.config文件中存储的连接字符串有两种方式
一种是

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


另一个是

<appSettings>
     <add key="ConnectionString"
       value="server=localhost;database=Northwind;uid=sa;password=secret;" />
</appSettings>
Run Code Online (Sandbox Code Playgroud)

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

更新:你能解释一下<connectionString>有什么重大优势 <appSetting>吗?

Ode*_*ded 13

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

appSettings 更通用,将用于其他应用程序设置.

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

  • 它还通过WebConfigurationManager.ConnectionStrings集合为您提供强类型连接字符串对象,如果您愿意,可以使用它. (2认同)

Sys*_*own 6

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


Bri*_*tle 5

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