Глобальная ConnectionString не инициализируется - PullRequest
0 голосов
/ 22 марта 2011

Моя строка подключения хранится на странице myGlobals.cs, как показано ниже:

/* Connection String */
public static string conString
{
    get { return _conString; }
    set { _conString = ConfigurationManager.ConnectionStrings["BaseConnectionString"].ToString(); }
}

У меня есть настройки кода в 4-уровневой архитектуре. Итак, у меня есть папка Business Object Layer, Business Access Layer и Data Access Layer. Если я переместить строку подключения в структуру DAL, она будет работать нормально. В противном случае я получаю эту ошибку:

The ConnectionString property has not been initialized

Неужели класс myGlobals.cs не включен до всего этого или его нужно изменить?

Вот мой уровень доступа к данным:

public DataTable Load()
    {
        SqlConnection conn = new SqlConnection(MyGlobals.conString);
        SqlDataAdapter dAd = new SqlDataAdapter("administratorGetAll", conn);
        dAd.SelectCommand.CommandType = CommandType.StoredProcedure;
        DataSet dSet = new DataSet();
        try
        {
            dAd.Fill(dSet, "AdministratorsTable");
            return dSet.Tables["AdministratorsTable"];
        }
        catch
        {
            throw;
        }
        finally
        {
            dSet.Dispose();
            dAd.Dispose();
            conn.Close();
            conn.Dispose();
        }
    }

1 Ответ

3 голосов
/ 22 марта 2011

Свойство 'setter' не вызывается автоматически; его код выполняется, когда вы размещаете свойство слева от присваивания - MyClass.MyProperty = "new value";

Вы хотите сделать это:

public static string conString 
{     
    get { return ConfigurationManager.ConnectionStrings["BaseConnectionString"]; }
} 
...