Как прочитать строку подключения из файла App.config на C # - PullRequest
5 голосов
/ 25 марта 2012

Я использую этот код для чтения строки подключения из моего файла app.config, но он всегда возвращает нулевое значение.Мой файл App.config находится в моем проекте.Оба метода приводят к нулевым значениям:

public SqlConnection getConnection()
{
    try
    {
        // connectionString = ConfigurationManager.AppSettings["dbConn"];

        connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
        connectionString = System.Configuration.ConfigurationManager.AppSettings["dbConn"];
        sqlConnection = new SqlConnection(connectionString);  

        sqlConnection = new SqlConnection(connectionString);
    }
    catch (Exception ex)
    {

    }
    return sqlConnection;
}

Это мое объявление файла app.config:

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
  <connectionStrings>
    <add name="dbConn" providerName="System.Data.SqlClient"
          connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User  Id=sa;Password=123" />
  </connectionStrings>
</configuration>

Ответы [ 4 ]

5 голосов
/ 25 марта 2012

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

connectionString = ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
sqlConnection = new SqlConnection(connectionString); 

ConfigurationManager.AppSettings используется длядоступ <appSettings>...</appSettings> раздел конфигурации.

4 голосов
/ 25 марта 2012

Можете ли вы попробовать

<?xml version="1.0" encoding="utf-8" ?>
 <configuration>
  <connectionStrings>
    <add name="dbConn" providerName="System.Data.SqlClient"
          connectionString="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User  Id=sa;Password=123" />
  </connectionStrings>
  <appSettings>
    <add key="dbConn"  value="Data Source=VANYA\SQLEXPRESS;Initial Catalog=mydatabase;User  Id=sa;Password=123" />
  </appSettings>
</configuration>

Тогда используйте второй метод.

Убедитесь, что вы выбрали файл App.Config в обозревателе решений и в окне свойств выберите от Copy to Output Directory до Copy Always. Теперь создайте приложение и попробуйте снова.

See the screenshot

1 голос
/ 25 марта 2012
connectionString=global::myProject.Properties.Settings.Default.myConnectionString
1 голос
/ 25 марта 2012

Вы просто определяете строку подключения в одном классе и вызываете эту строку .....

public class Connection
    {
        /// <summary>
        /// Connection String
        /// </summary>
        public static string ConnectionString
        {
            get
            {
                return ConfigurationManager.ConnectionStrings["dbConn"].ConnectionString;
            }
        }
    }

//Returning connction string
 sqlConnection conn = new SqlConnection(Connection.ConnectionString);  
...