2009-03-30 12 views
0

私のマシンは今日遊ばれていますか?オブジェクト参照がオブジェクトのインスタンスに設定されていません

このオブジェクトのTestConnectionString()メソッドを実行すると、接続文字列の設定でエラーが発生します。

public class CustomerDAL 
{ 
    string connectionString = ConfigurationManager.ConnectionStrings["myConnection"].Name; 

    public CustomerDAL() 
    { 

    } 

    public string TestConnection() 
    { 
     System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(connectionString); 
     conn.Open(); 

     if (conn.State == System.Data.ConnectionState.Open) 
     { 
      return "Open"; 
     } 
     else 
     { 
      return "Close"; 
     } 
    } 
} 

答えて

7

ConnectionStrings["myConnection"]戻りnullの場合、コンストラクタで失敗しますNameプロパティを取得し、それを逆参照。それは間違いなくバグがどこにあるのですか?

なぜその行にブレークポイントを入れて、それがは、それが持ってを考えているかどうか確認するためにConfigurationManager.ConnectionStringsで見ていない - とタイプミスのために非常に慎重にをご確認ください。

その後、メソッドの最初の行にブレークポイントを置き、connectionStringの値が何であるかを確認します。 nullSqlConnectionコンストラクタに渡すと、実際に例外がスローされませんが、開こうとするとInvalidOperationExceptionになります。

+0

私の考えは正確です。 –

+0

ジョン〜私はよく知っていたはずです。私は自分のStackOverFlowedを持っている。それは "appSettings"セクションの下にありました。 –

+0

これが私たちがここにいる理由です。気にして、今は寝るよ... –

1

は、私は3件の提案が

  1. あなたは、複数のコンフィギュレーションファイルの例を持っている場合は、あなたの接続文字列が右
  2. チェックがある
  3. 再チェック場合は、構成マネージャーの.dllの参照を追加する必要があります。 web.configとapp.config;そのため、ConfigurationManagerはソリューション内の間違ったファイルを参照しています。
0

私は今朝完全に動作するコードで同じ問題を抱えていました。問題はdbサーバー自体であり、私たちのIPアドレスからの接続を拒否していました(ネットワークプロバイダが私たちのIPアドレスを変更しました)。

何とかSqlConnectionオブジェクトは、dbサーバーからの元の応答を中継するのではなく、「オブジェクト参照がオブジェクトのインスタンスに設定されていません。

関連する問題