2013-07-08 14 views
6

Possiedo un'applicazione Visual Studio 2012 ASP.NET MVC che esegue una query su un database. Mi è stato detto che è buona norma mantenere la stringa di connessione nel file web.config. La stringa di connessione denominata ConnString si trova:Visual Studio 2012 Stringhe di connessione ASP.NET MVC 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> 

In C# dove voglio ottenere la stringa di connessione, io uso:

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

L'applicazione muore su questa linea e lancia la seguente eccezione:

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

ho incluso:

using System.Configuration; 

nella parte superiore della pagina, ma non riesce ancora. Ho provato a utilizzare using System.WebConfiguration, ma non riesco ancora a ottenere la stringa. Come ottengo la stringa?

+1

Nel file web.config, il nodo sotto ? –

+0

Prova solo ConfigurationManager.ConnectionStrings ["ConnString"]. ToString() – ckv

+0

@RyanWeir - Sì, è un figlio diretto del nodo . – Jonathan

risposta

2

modificare il file web.config per includere providerName="System.Data.SqlClient" come un attributo sulla stringa di connessione in questo modo:

<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

Grazie, il problema era in realtà il fatto che stavo usando il file web.config sbagliato! – Jonathan

1

Hai perso aggiungere providerName="System.Data.SqlClient" sulla stringa di connessione.

Modificare la stringa connectiong a:

<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> 

saluti

+0

Ciò non dovrebbe influire sul ConfigurationManager, in quanto ignora il provider.Questo è usato solo da ADO.net –

1

ho niente di nuovo per rispondere a questa domanda, ma vorrei dare qualche spiegazione,

System.Data.SqlClient 

sua .NET Framework Fornitore di dati per SQL Server. Nel web.config si dovrebbe avere System.Data.SqlClient come valore dell'attributo providerName. È il provider di dati .NET Framework che si sta utilizzando.

se è necessario collegare l'applicazione con MySQL allora si può utilizzare

MySql .Net Connector 

suo termine, ma nel tuo caso la sua scomparsa, ecco perché si stanno ottenendo un messaggio di errore.

Ulteriori informazioni su (qui) [http://msdn.microsoft.com/en-US/library/htw9h4z3 (v = VS.80) .aspx] Spero che ti fornisca una migliore comprensione dell'errore hai fatto e tu lo aggiusti.

<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> 
Problemi correlati