Где хранить строку подключения в Web.Config? - PullRequest
1 голос
/ 26 марта 2011

Мы можем хранить строку подключения в файле 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 ]

13 голосов
/ 26 марта 2011

connectionStrings раздел выделен для строк подключения и был представлен только в .NET 2.0.

appSettings является более общим и должен использоваться для других настроек приложения.

Вы должны использовать раздел connectionStrings, так как он также может быть зашифрован отдельно от любых других настроек.

6 голосов
/ 26 марта 2011

К первому подходу могут напрямую обращаться некоторые элементы управления данными, такие как SQLDataSource.

5 голосов
/ 26 марта 2011

Использование элемента connectionStrings будет наиболее подходящим способом обработки строк подключения. Элемент appSettings - это способ, которым строки соединения использовались до .NET 2.0. Вы можете использовать любой из этих подходов, но, вероятно, будет проще работать с несколькими строками подключения, если вы используете элемент connectionString. Поскольку в appSettings хранится несколько строк подключения, вам придется проанализировать каждое имя (или значение), чтобы выяснить, является ли это строкой подключения, прежде чем вы сможете ее использовать. Это приводит к проблемам с обслуживанием. Проще просто проверить, присутствуют ли все элементы connectionString.

2 голосов
/ 26 марта 2011

Если вы добавляете строки подключения в раздел appSettings, вам необходимо вручную извлечь их, используя метод ConfigurationManager.AppSettings.Get (key) .

Добавляя строки подключения вместо элемента connectionStrings , .NET может автоматически находить их по имени при создании объекта подключения.

1 голос
/ 26 марта 2011

строка строки соединения объявляет соединение для системы. Я имею в виду, что ваше приложение знает, что ваша строка является connectionString. Если вы будете использовать appSettings для приложения, это просто любое строковое значение.

0 голосов
/ 07 июля 2016

Помимо преимуществ, упомянутых в других ответах, элементы connectionStrings имеют атрибут providerName, которого нет у элементов appSettings. Это особенно полезно, если ваш источник данных , а не SQL Server.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...