2012-01-02 14 views
5

Web設定ファイルでmysql接続を設定しようとしています。Web設定ファイルの接続文字列に問題があります

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

と私は、次のステップでそれをアクセスしています:ここで

は、接続文字列のコードである。私は私のコードを実行すると

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

は、それがnull参照の例外が発生し、「オブジェクト参照ではありませんオブジェクトのインスタンスに設定します。

この問題を解決するにはどうすればよいですか?

+0

なぜMySql .Netコネクタを使用していないのですか? http://dev.mysql.com/downloads/connector/net – Lloyd

答えて

7

を行くかもしれないものを見るために私のためにあなたの接続を作成しようとしているクラスファイルしてくださいあなたがMySql .Net Connectorを使用している場合は、お使いのコンフィギュレーション設定は、次に、あなたのコードは次のようになります以下

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

ようになります。

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

私は同様の種類のコードですが、問題はまだ解決されていません! –

+0

「接続文字列」の設定が「非常に重要」である場合、接続が初期化されない場合は「類似」または同じです。 "connstring"のスペルがconfigファイルとコードで同じであることを確認してください。 – Lloyd

4

MySql Connector/Net APIがあると思います。 ProviderName属性を変更し、ConnectionStringsを見てください。 MySql.Data.MySqlClientで、System.Configuration.ConfigurationManager.ConnectionStringsコレクションを使用する必要があります。

+0

これは既に行われていますが、それでも同じエラーが発生しています。これを解決する他の方法? –

+0

あなたはどのweb.configを使用していますか?それはルートかサブdirにありますか? – adatapost

0

次の最初のを確認してください:

ConfigurationManager.ConnectionStrings["connstring"].ConnectionString 

は、文字列を返しますが、上記のステップからの文字列を持っている場合、あなたはResponse.Writeと出力にそれを書いたり、デバッガ

を使用してそれを見ることができます使用しているクラスWebConfigurationManagerがインスタンス化されていて、nullでないことを確認してください。

あなたが第一ステップから文字列を取得していない場合、あなたは仮想ディレクトリになると

あなたconnectionStringsセクションでは、configuration内にある必要があり、あなたのweb.configファイルを上書きすることができ、あなたのコードフォルダ内の別のweb.configを持っているかもしれませんWeb.configファイルの純粋な* .aspxページから接続文字列を読んでみてください、あなたが最初にそれにアクセスできるかどうかを確認

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

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

を次のようになります。

ASPXファイルを作成し、次のファイルを貼り付けてブラウザから呼び出します。まだあなたは、接続文字列を読み取ることができない場合

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

、あなたの質問を編集して、完全なweb.configファイルを追加しても、あなたは間違って

+0

文字列値自体を返しません(同じエラーをスローします)。 そして、Projectsフォルダに他のweb.configファイルが見つかりません。 これは他の方法で解決できますか? –

+0

自分の答えを更新しました。あなたのページにまだ接続文字列が見えない場合は教えてください – AaA

+0

'System.Web.UI.Page'以外のクラスから接続を作成している疑いがありますので、オブジェクト'ConfigurationManager'は自動的にインスタンス化されません – AaA

関連する問題