2016-10-04 10 views
-1

ユーザーがアプリケーションをダウンロードできるようにしたいが、データベースのログイン資格情報をコード内の文字列として非表示にする必要があります。ConnectionManagerを使用して接続文字列を使用する - System.NullReferenceException

私がしたいのは、接続文字列を使用することです。だから、私は新しい項目を追加しました:Application Configuration File、その後、私はいくつかの変更を加えた:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <connectionStrings> 
    <add name="MyData" connectionString="example"/> 
    </connectionStrings> 
</configuration> 

私はSystem.Configuration参照してusing System.Configuration;を追加しました。私がして、接続文字列を表示しようとした:

private void displayConnString_Click(object sender, EventArgs e) 
{ 
    var connectionString = ConfigurationManager.ConnectionStrings["MyData"].ConnectionString; 
    MessageBox.Show(connectionString); 
} 

しかし、それはちょうど私System.NullReferenceExceptionエラーになります。私は混乱しています。私はそれについて多くのチュートリアルを見ましたが、すべて同じことをしましたが、毎回同じエラーが出ます。私は間違っている?

+0

app.configおよびコード内のConnectionStrings ["MyData"]で、接続文字列の正確な名前を使用していることを確認する必要があります。 – YuvShap

+0

私はコードをコピーしたので、私は同じ名前を使用していることがわかります。 – Dawvawd

+0

さて、この権利を得ることができます。あなたはコードに接続文字列を表示させたくありませんか?だからあなたのプログラムに含まれているプレーンなTEXTファイルにそれらを追加しましたか?笑。あなたは接続文字列を見ることが簡単になりました。 –

答えて

-2

あなたはアプリであれば、ウェブアプリですあなたはおそらくのWeb構成ファイル(web.config)

+0

私はWindowsフォームアプリケーションを使用しています。 – Dawvawd

0

ほとんどの場合を追加する必要があり、アプリケーションが何らかの理由で実行時にapp.configファイルを見つけることができません。

app.configファイルがアプリケーションのルートにあることを確認してください。

app.configファイルがbin \ debugディレクトリにコピーされていることを確認してください(yourapp.exe.config)。

サイドノート:app.configファイルに接続文字列を入れると、ユーザーは簡単にその文字列を見ることができます。コードにコンパイルした場合よりもさらに簡単です。それに気をつけてください。

+1

私はdownvotedだとは思いませんが、設定を 'copy to output ... 'に変更する部分が間違っています。ビルドプロセスは適切な設定ファイル( 'AppName.exe.config')を生成し、それを' bin'ディレクトリに置きます。プロジェクトルートの 'App.config'ファイルは、' bin'に手作業でコピーされていても、実行時に使用されることはありません。 – knobcreekman

+0

@knobcreekmanもちろん、あなたは正しいです。私は夜遅くに答えるべきではありません。私はそれを訂正します。 –

+2

これはまだ有用な情報を持っています - app.configファイルがアプリケーションのルートにあることを確認してください。私は、何も表示されていなかったのかと疑問に思うほど、データアクセスライブラリの中にappまたはweb.configファイルを数多く混在させました。私の場合、間違ったファイルにXMLがあるため、このようなエラーは一般的に発生しています。 –

関連する問題