Ошибка NullReference ConnectionStringSettings - PullRequest
1 голос
/ 17 ноября 2011

У меня есть следующие настройки в моем web.config, как дочерний элемент элемента конфигурации:

<connectionStrings>
  <clear />
  <add name="GingerlimeDB"
       connectionString="Data Source=localhost;
                       Integrated Security=False;
                       Initial Catalog=dbname;
                       User Id=accountname;
                       Password=password;"
       providerName="System.Data.SqlClient" />
</connectionStrings>

В коде, где я хочу получить строку подключения, я поместил:

using System.Configuration
...
    var connStringObject = ConfigurationManager.ConnectionStrings["GingerlimeDB"];
    string connectionString = connStringObject.ConnectionString;
    Console.WriteLine(connectionString);

Я не получаю вывод консоли, вместо этого он показывает:

Ссылка на объект не установлена ​​на экземпляр объекта.

Какполучить строку подключения из веб-конфигурации?

1 Ответ

1 голос
/ 17 ноября 2011

Предполагается, что ваш web.config файл выглядит следующим образом:

<?xml version="1.0"?>
<configuration>
    <connectionStrings>
        <clear />
        <add name="GingerlimeDB"
                   connectionString="Data Source=localhost;
                   Integrated Security=False;
                   Initial Catalog=dbname;
                   User Id=accountname;
                   Password=password;"
                   providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

Вы должны иметь доступ к строке подключения точно так, как вы показали в своем коде. Я использую что-то почти идентичное:

using System.Configuration;
....
internal bool OpenDatabaseConnection()
{
        try
        {
            string connectionString = ConfigurationManager.ConnectionStrings["MyDatabase"].ConnectionString;
            dbConnection = new SqlCeConnection(connectionString);
            dbConnection.Open();
            return true;
        }
        catch (SqlCeException ex)
        {
            this.errorLogging = new ErrorLogging(ex.Message, ex.Source, ex.HelpLink, ex.GetType().ToString());
        }
        catch (InvalidOperationException ex)
        {
            this.errorLogging = new ErrorLogging(ex.Message, ex.Source, ex.HelpLink, ex.GetType().ToString());
        }
        catch (ArgumentException ex)
        {
            this.errorLogging = new ErrorLogging(ex.Message, ex.Source, ex.HelpLink, ex.GetType().ToString());
        }
        catch (ConfigurationErrorsException ex)
        {
            this.errorLogging = new ErrorLogging(ex.Message, ex.Source, ex.HelpLink, ex.GetType().ToString());
        }
        return false;
}

Какая строка на самом деле вызывает исключение NullReference? (объект не установлен на экземпляр объекта)?

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