2013-07-08 12 views
6

Mam aplikacji ASP.NET MVC programu Visual Studio 2012, które kwerendy bazy danych. Powiedziano mi, że dobrą praktyką jest utrzymywanie ciągu połączenia w pliku web.config. Ciąg połączenia nazywane ConnString znajduje się:Visual Studio 2012 ASP.NET MVC Ciągi połączeń Web.Config

<connectionStrings> 
     <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;"/> 
    </connectionStrings> 

W języku C#, gdzie chcę uzyskać ciąg połączenia, używam:

String connStr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString; 

Aplikacja umiera na tej linii i rzuca następujący wyjątek:

Object reference not set to an instance of an object. System.NullReferenceException: Object reference not set to an instance of an object. 

mam włączone:

using System.Configuration; 

u góry strony, ale wciąż się nie udaje. Próbowałem użyć using System.WebConfiguration, ale nadal nie mogę pobrać ciągu znaków. Jak uzyskać ciąg?

+1

Czy w twoim pliku web.config znajduje się węzeł pod jeden? –

+0

Wypróbuj tylko ConfigurationManager.ConnectionStrings ["ConnString"] ToString() – ckv

+0

@RyanWeir - Tak, jest bezpośrednim potomkiem węzła . – Jonathan

Odpowiedz

2

Zmień plik web.config zawierać providerName="System.Data.SqlClient" jako atrybut na ciąg połączenia tak:

<connectionStrings> 
     <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
+0

Dzięki, problem polegał na tym, że użyłem niewłaściwego pliku web.config! – Jonathan

1

tęskniłeś dodać providerName="System.Data.SqlClient" na ciąg połączenia.

Zmień swoją connectiong ciąg:

<connectionStrings> 
      <add name="ConnString" connectionString="Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" providerName="System.Data.SqlClient" /> 
     </connectionStrings> 

Pozdrowienia

+0

Nie powinno to wpływać na menedżer ConfigurationManager, ponieważ ignoruje dostawcę.To jest używane tylko przez ADO.net –

1

mam nic nowego do odpowiedzi na to pytanie, ale chciałbym, aby dać pewne wyjaśnienia,

System.Data.SqlClient 

Jego Framework Dostawca danych dla SQL Server. W web.config powinieneś mieć System.Data.SqlClient jako wartość atrybutu providerName. Jest to dostawca danych .NET Framework, z którego korzystasz.

jeśli trzeba połączyć aplikację z MySQL następnie można użyć

MySql .Net Connector 

swoje wymagane, ale w przypadku jej brakuje, to dlaczego otrzymujesz komunikat o błędzie.

Możesz przeczytać więcej o (tutaj) [http://msdn.microsoft.com/en-US/library/htw9h4z3 (v = VS.80) .aspx] Mam nadzieję, że pozwoli ci lepiej zrozumieć, jaki błąd zrobiłeś i to naprawiłeś.

<configuration> 
    <connectionStrings> 
    <add name="Northwind" 
     connectionString="Data Source=Data Source=IP_OF_SERVER,PORT; Initial Catalog=DATABASE_NAME; UID=USERNAME; pwd=PASSWORD; Integrated Security=True;" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 
Powiązane problemy