2016-11-10 8 views
1

Я получаю исключение для ссылки на null при попытке подключиться к базе данных через ConnectionCtrings["MyDB"].connectionstring.Null Error Reading Connection String

Это в операторе using и тот же код, который я использовал во многих других проектах, но он продолжает указывать мне нулевую ссылку, и я не знаю почему.

Строка соединения named названа правильно в файле web.config, который находится в одном проекте, поэтому я не ожидал, что возникнут проблемы с разрешениями.

Что я пропустил?

Редактировать: Я видел предложенные ответы, они решены путем помещения строки в Web.Config, где находится строка соединения.

Код: ConnectionString в Web.config

<connectionStrings> 
    <add name="MyDB" connectionString="Data Source=192....; Initial Catalog=ProjectDb; Integrated Security=false; User Id=user; Password=password;" providerName="System.Data.SqlClient" /> 
</connectionStrings> 

функции для доступа к БД

public static Company RetrieveCompany(int id) 
{ 
    var cmp = new Company(); 
    try 
    { 
     using (var con = new SqlConnection(ConfigurationManager.ConnectionStrings["MyDB"].ConnectionString)) 
     { 
      con.Open(); 
      using (var cmd = new SqlCommand("RetreiveEmailProc", con)) 
      { 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@companyId", id); 

       SqlDataReader sdr = cmd.ExecuteReader(); 
       while (sdr.Read()) 
       { // code omitted } 
      }   

     } 
    } 
    catch(Exception ex) 
    { 

    } 

    return cmp; 
} 
+0

См. Http://stackoverflow.com/questions/11830297/nullreference-at-connectionstring – Marusyk

+0

Проблема не связана с NRE, а с отсутствующей строкой соединения. Возобновлено. –

ответ

1

Я думаю, что это связано с Вами с помощью ConfigurationManager вместо WebConfigurationManager. Возможно, ваш код находится в другой папке с другим web.config, а ConfigurationManager не может справиться с этой проблемой наследования.

+0

Спасибо за предложение, к сожалению, он дал ту же ошибку, используя WebConfigurationManager. – PurpleSmurph

+0

Можете ли вы установить точку останова и посмотреть, что находится в 'ConfigurationManager.ConnectionStrings'? –

+0

Я сделал - что я ищу? Когда я наводил указатель на WebConfigurationManager, я получаю счет 2, который, я думаю, ошибочен, конечно, должен быть только один? – PurpleSmurph