Как использовать ConfigurationManager.AppSettings - PullRequest
39 голосов
/ 15 августа 2011

Я никогда не использовал "appSettings" раньше. Как вы настраиваете это в C # для использования с SqlConnection, это то, что я использую для "ConnectionStrings"

SqlConnection con = new SqlConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

А вот что у меня есть для "appSettings"

SqlConnection con = new SqlConnection();
con = ConfigurationManager.AppSettings("ConnectionString");

но это не работает.

Ответы [ 4 ]

40 голосов
/ 15 августа 2011

Ваш web.config файл должен иметь следующую структуру:

<configuration>
    <connectionStrings>
        <add name="MyConnectionString" connectionString="..." />
    </connectionStrings>
</configuration>

Затем создать соединение SQL, используя строку подключения с именем MyConnectionString:

SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString);

Я предпочитаю хранить строки подключения в разделе AppSettings вашего файла конфигурации, это будет выглядеть так:

<configuration>
    <appSettings>
        <add key="MyConnectionString" value="..." />
    </appSettings>
</configuration>

И тогда ваш конструктор SqlConnection будет выглядеть так:

23 голосов
/ 15 августа 2011

ConfigurationManager.AppSettings на самом деле является свойством, поэтому вам нужно использовать квадратные скобки.

В целом, вот что вам нужно сделать:

SqlConnection con= new SqlConnection(ConfigurationManager.AppSettings["ConnectionString"]);

Проблема в том, что вы пытались установить con в строку, что неверно. Вы должны либо передать его конструктору, либо установить свойство con.ConnectionString.

0 голосов
/ 15 августа 2011

\ если то, что вы опубликовали, именно то, что вы используете, то ваша проблема немного очевидна. Теперь предположим, что в вашем файле web.config у вас есть строка подключения, определенная так:

 <add name="SiteSqlServer" connectionString="Data Source=(local);Initial Catalog=some_db;User ID=sa;Password=uvx8Pytec" providerName="System.Data.SqlClient" />

В вашем коде вы должны использовать значение в атрибуте name для ссылки на строку подключения, которую вы хотите (вы могли бы фактически определить несколько строк подключения к различным базам данных), так что вы бы получили

 con.ConnectionString = ConfigurationManager.ConnectionStrings["SiteSqlServer"].ConnectionString;
0 голосов
/ 15 августа 2011

вы должны использовать []

var x = ConfigurationManager.AppSettings["APIKey"];
...