2012-01-02 19 views
5

Sto tentando di impostare la connessione mysql nel file di configurazione web.Problema con stringa di connessione nel file di configurazione Web

ecco il codice stringa di connessione:

<connectionStrings> 
    <add name="connstring" 
     connectionString="DRIVER={MySQL ODBC= 3.51=  Driver};Database=marctest;Server=localhost;UID=root;PWD=1234;" 
     providerName="System.Data.SqlClient"/> 
    </connectionStrings> 

e sto accedervi in ​​passaggio seguente:.

MySqlConnection connmysql = new MySqlConnection(WebConfigurationManager.ConnectionStrings["connstring"].ConnectionString); 

Quando eseguo il mio codice genera un'eccezione di riferimento null "non Riferimento a un oggetto impostato su un'istanza di un oggetto. "

Come posso risolvere questo problema?

+0

Perché non si utilizza il connettore MySql .Net? http://dev.mysql.com/downloads/connector/net – Lloyd

risposta

7

Se si utilizza il MySql .Net Connector allora la vostra impostazione di configurazione dovrebbe essere simile al seguente

<add name="connstring" connectionString="server=localhost;User Id=root;Persist Security Info=True;database=marctest;password=PASSWORD" providerName="MySql.Data.MySqlClient"/> 

poi il codice dovrebbe essere simile.

using (MySqlConnection dbConn = new MySqlConnection(ConfigurationManager.ConnectionStrings["connstring"].ConnectionString)) 
{ 
    // Database work done here 
} 
+0

Sto usando un simile tipo di codice ma il problema non è ancora stato risolto! –

+0

"Simile" o uguale, l'impostazione "connectionString" è molto importante, se non è corretta la connessione non verrà inizializzata. Controllare l'ortografia di "connstring" è la stessa sul file di configurazione e sul codice. – Lloyd

4

Penso che tu abbia MySql Connector/Net API. Modificare l'attributo ProviderName e dare un'occhiata a ConnectionStrings. Dovrebbe essere MySql.Data.MySqlClient e utilizzare la raccolta System.Configuration.ConfigurationManager.ConnectionStrings.

+0

Questo è già stato fatto ma continua ad avere lo stesso errore. Qualche altro modo per risolvere questo? –

+0

Quale web.config è utilizzato da te? È root o sub-dir? – adatapost

0

Si dovrebbe controllare la seguente prima:

ConfigurationManager.ConnectionStrings["connstring"].ConnectionString 

restituisce una stringa, è possibile scrivere a uscita con Response.Write o guardare utilizzando il debugger

se avete la stringa dal punto di cui sopra , controlla se la classe WebConfigurationManager che stai usando è istanziata e non è nulla.

se non si ottiene stringa dal primo passo, si potrebbe avere un altro web.config nella cartella di codice che sarebbe una directory virtuale e potrebbe essere l'override web.config

tua sezione connectionStrings dovrebbe essere all'interno configuration di Web.config di file e dovrebbe essere simile seguenti

<configuration> 
    <connectionStrings> 
    <add name="connstring" connectionString="..." providerName="..." /> 
    </connectionStrings> 

    <appSettings> 
    ... 
    </appSettings> 
</configuration> 

provare a leggere la stringa di connessione da un puro * pagina aspx e vedere se è possibile accedere per primo.

creare un file ASPX e incollarlo in seguito e chiamarlo dal browser.

<%@ Page Language="C#" %> 
<% 
Response.Write(ConfigurationManager.ConnectionStrings["DbConnection"].ConnectionString); 
%> 

se ancora non riesci a leggere la stringa di connessione, si prega di modificare la tua domanda e aggiungere piena web.config ed anche file di classe che si sta tentando di creare il collegamento per me vedere quello che potrebbe andare storto

+0

Non restituisce il valore stringa stesso (genera lo stesso errore). E non trovo nessun altro file web.config nella mia cartella Progetti. In caso contrario questo può essere risolto ?? –

+0

Ho aggiornato la mia risposta, per favore fatemi sapere se ancora non riesci a vedere la stringa di connessione nella tua pagina – AaA

+0

Sospetto che tu stia creando la tua connessione da una classe diversa da "System.Web.UI.Page" quindi l'oggetto 'ConfigurationManager' non viene istanziato automaticamente – AaA

Problemi correlati