2016-04-13 12 views
0

ユーザーに接続文字列を編集させたい、私はファイルのブラウザダイアログを設定して、.accdbファイルのみを選択できるようにしています。保存ボタンが現在の接続文字列をテキストボックスのファイルパスで上書きするようにします。私はいろいろな時に複数のエラーがあったので、作業が終わっているように見えますが、 "オブジェクト参照がオブジェクトのインスタンスに設定されていません"というNullReferenceExceptionエラーがあります。うまくいけば、これは初心者の間違いです。私のApp.config接続文字列をテキストボックスから更新する

var configuration = ConfigurationManager.OpenExeConfiguration(@"\\Mac\Home\Documents\Visual Studio 2015\Projects\tiddlywinks\tiddlywinks\App.config"); 
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings"); 
section.ConnectionStrings["tiddlywinksDatabaseConnectionString1"].ConnectionString = @"Provider = Microsoft.ACE.OLEDB.12.0; Data Source ='" + filePathTextBox.Text + "'; Persist Security Info=False;"; 
configuration.Save(); 

これは私がatmを持っているコードです。誰も助けることができますか?
また、App.configがどこにあるのかをプログラムに伝えることなく、Visual Studioが自分の設定ファイルの場所を知っていなくても、同じことを実現する方法はありますか?

+0

どのラインが例外を投げていますか? –

+0

http://stackoverflow.com/questions/980440/update-app-config-system-net-setting-at-runtime – Wjdavis5

答えて

1

あなたはこのようことを行うことができます。 あなたはあなたのソリューションのプロパティに行くが

プロパティ=>設定=>新しい設定

を追加します。 (スコープが「ユーザー」であることを確認してください)

とのそれを呼びましょう、あなたの接続文字列のために座って、新規に追加します。そして、あなたがしなければならないすべては

Properties.Settings.Default.ConnectionString = TextBoxConnectionString.Text 
Properties.Settings.Default.Save(); 

が付けで Applications sittings

:この記事で述べたようなConnectionString

試してみよう!

+0

ありがとうございました。これはうまくいきました。私の唯一の厄介なことは、愚かなことはデータベース接続の問題を作成したことで、私はそれが私が使っていた文字列ではなく、それを使うことをお勧めしたいと考えました。でも、とにかくレポートがうまくいかないので、私はそれらを取るつもりだから、心配しないでください。 – Simon

0

ユーザーは実行時にアプリケーション設定を変更できません。 デザイン時にのみ変更できます。 これにはユーザー設定を使用します。

方法:Using Application Settings and User Settings

よろしく

関連する問題