2012-01-03 9 views
0

C#でapp.configファイルを使用して接続文字列を取得します。これは私のapp.configファイルです:私はapp.configファイル</p> <p>を使用して接続文字列を取得したい

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings>  
    <add name="MSSConStr" 
     connectionString="Data Source=Sithi-PC;Initial Catalog=mssdb2;User ID=XXXXX;Password=YYYYYYY" 
     providerName="System.Data.SqlClient" /> 
    </connectionStrings> 
</configuration> 

string x = ConfigurationManager.ConnectionStrings["MSSConStr"].ConnectionString; 

この"オブジェクト参照がオブジェクトのインスタンスに設定されていません"という例外が返されます。

このエラーを修正するのに手伝ってください。これは.NET Framework 3.5プロジェクトで正しく動作しています。しかし、このプロジェクトは.NET Framework 4.0です。プロジェクトに参照 "System.Configuration"を追加し、データベースアクセスクラスで使用しました。 ありがとうございました!

EDIT:Addionalコード:

public static SqlConnection getNewConnection() 
{ 
    string x = ConfigurationManager.ConnectionStrings["MSSConStr"].ConnectionString.ToString(); 
    con2 = new SqlConnection(x); 
    return con2; 
} 
+0

あなたのコードをもっと投稿できますか?デバッガでは、例外はどこにスローされますか?具体的にどのライン? –

+1

投稿したコードは正しいです。エラーは別の場所にある必要があります。 –

+0

パブリック静的SqlConnection getNewConnection() { 文字列x = ConfigurationManager.ConnectionStrings ["MSSConStr"]。ConnectionString.ToString();con2 =新しいSqlConnection(x); return con2; }これがメソッドです。実行時の –

答えて

2

2可能な問題があります。

1)あなたが意図せずにクリアされるアプリ(設定、コードなどの他の場所でいくつかの設定を、持っているが、

2)実行時に使用されている.configには、接続文字列が伝播されません。デバッグモードで実行している場合は、Windowsエクスプローラを開き、bin/debugディレクトリに移動し、.exe.configファイルまたは.vshost.exe.configファイルを開き、接続文字列が正しく設定されているかどうかを確認します。そうでない場合は、アプリケーションを停止し、ディレクトリーをクリアして、やり直してください。問題が解決しない場合は、項目1を参照してください。

+0

ああ、今、お元気であ、ありがとう! –