2017-01-13 14 views
0

データベースの場所とデータベース名のみをsettings.settingsファイルに保存しました。デバッグ中にSettings.Settingsファイルから接続文字列にアクセスできます。しかし、実行可能ファイルを実行すると、set.settingsファイルの接続文字列で使用したデータベースがロードされません。ユーザーは、必要に応じて設定ファイルを動的に変更できます。私の接続文字列は、.exeを実行しているときに、settings.settingファイルにアクセスできない

public static string sd =System.AppDomain.CurrentDomain.BaseDirectory.ToString(); 

public static string co = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + sd +"\\Data\\"+ Properties.Settings.Default.db+".accdb"; 
+0

したがって、 'BaseDirectory.ToString()'と 'Properties.Settings.Default.db'は何を返しますか?あなたは返された値を記録し、それを見ることができます。 – CodingYoshi

+0

はい。テスト目的のために、私は、MessageBox.Show()を使用しました。これは、デバッグ時に希望の結果を返します。しかし、.exeを実行すると、Properties.Settings.Default.db ..... BaseDirectory.ToString()に保存されていない別のデータベースが表示され、目的の結果も表示されます。 – mofidul

+0

設定ファイルは、ユーザーごとにではなくアプリケーションごとに変更します。プロジェクトのプロパティを使用して設定を行うことができます。また、単に 'AppSettings'に接続文字列を保存したいかもしれません。申し訳ありませんが、私は答えを書くだろうが、私は携帯電話の外にいる。 – CodingYoshi

答えて

1

のようになります。プロジェクトのプロパティに移動し、ユーザーベースではなくアプリケーションベースにします。ファイルがアプリケーションによってロックされているように、ユーザーが動的に動的にこれを行うことはできませんsettings.settingファイル

ないユーザーを変更する必要がある場合、私は今直面しています

【選択の問題があります。ユーザーが変更を行った場合は、アプリケーションの再起動が必要ですが、変更はアプリケーションによってロックされていない場合にのみ発生します。

各ユーザーが異なる接続文字列を持つ必要がないかぎり、接続文字列をユーザーに基づいて作成することは意味がありません。

EDIT

あなたが動的に、接続を変更するのいずれかの設定は、XMLファイルのようなファイル扱い、それを変更したり、ファイルやデータベースなどの別のソースに接続文字列を格納する場合

+0

私は接続文字列を動的に変更する必要があります....そして、設定を変更するたびにアプリケーションを再起動します。 – mofidul

関連する問題