Как использовать ConfigurationManager.Параметр appsettings

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

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

и это то, что у меня есть для "appSettings"

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

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

4 ответов


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

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

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

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


код 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 будет выглядеть так:

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

\Если то, что вы опубликовали, именно то, что вы используете, тогда ваша проблема немного очевидна. Если в вашей сети.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;

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

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