2012-02-09 14 views
1

私はマシンにローカルにwinformsアプリケーションを開発しました。 csvファイルからデータを読み取り、関連する情報をデータベースから検索します(ストアドプロシージャを実行することにより)。.netプロジェクトを開発サーバーに展開する

これを開発サーバーに移動して実行しようとしましたが、app.configファイルからSQL接続文字列を取得したときにエラーが発生しました。エラーは次のとおりです。System.NullReferenceException:オブジェクト参照がオブジェクトのインスタンスに設定されていません。。もちろん、アプリは私のマシン上で正常に動作します。

このコードに続くすべての行がコメントアウトされ、エラーメッセージが表示されます。私はそれがconn.ConnectionStringラインと関係していると推測しています。

SQLデータベースが正しいdbサーバー& UID & pwdを指しています。エラーの原因は何ですか?

try 
    { 
     using (SqlConnection conn = new SqlConnection()) 
     { 
      conn.ConnectionString = ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString; 
+0

データベースに接続して開発サーバーに配置するだけの簡単なアプリケーションを作成します。これが失敗すると、あなたのdevサーバ経由でデータベースサーバにアクセスできないかもしれません。 –

答えて

4

コードサンプル内のオブジェクトの1つが「null」を返しています。私はそれがその行にブレークポイントを入れて、それが「SilverTicker」が含まれていることを確認するために.ConnectionStringsコレクションの内容を確認

ConfigurationManager.ConnectionStrings["SilverTicker"].ConnectionString 

だと推測しています。

私はそれが.ConnectionStringプロパティは例外をスローしていますアクセス、ConfigurationManager.ConnectionStrings["SilverTicket"]は(おそらく2つの環境でapp.config間の矛盾の)定義されていないことを推測しています。

+0

解決策は、settings.settingsインターフェイスを使用して接続文字列を作成することでした。情報をありがとう。 – user1111955

+0

@ user1111955(私はあなたにuser9を呼びますか?).settingsとapp.configはかなり同等です。私はあなたがまだ展開していないか、間違ったバージョンのapp.configをあなたのアプリに配備しているかのように賭けています。コンパイルされません。それを展開する必要があります。 –

1

は、そのretrivingデータを確認するか、あなたは

DataSet.Table[0] 

チェックTISは、データを返すと、DataSetはそれでテーブルを含んでいなければならないように書かれていません

場合。

1

2番目の.connectionstringは不要です。 app.configのconnectionstringsタグの適切な場所に接続文字列を配置する必要があります。その場所はapp.config内で特定である必要があります。そうでない場合、コードは接続文字列を検出しません。

関連する問題