1

この問題に直面したのはおそらく私が初めてではありませんが、どこにも適切な答えが見つかりませんでした。

厳密に型指定された DataSet を使用する Windows フォーム アプリケーションがあります。デザイナーは、アプリケーション設定で定義された接続文字列を使用します。問題は、この設定がアプリケーション スコープ (読み取り専用) として定義されており、実行時に変更できるようにする必要があることです。設定デザイナーで、設定のタイプが「接続文字列」の場合、スコープを「ユーザー」に変更できません。また、生成されたデータセットは、実行時に接続文字列を選択できるコンストラクターを提供しません。常に設定で使用されます。

MS がこの制限を導入した理由を知っていますか? 回避策はありますか?

私は現在、非常に醜い回避策を使用しています。設定のタイプを「文字列」に変更し、スコープを「ユーザー」に変更します。そうすれば、実行時に変更でき、正常に動作します。問題は、デザイナーでデータセットを変更する必要があるときに、それを「ConnectionString」に戻さなければならないことです。そうしないと、デザイナーが機能しません。

ご提案いただきありがとうございます。

4

1 に答える 1

5

実行時に ApplicationScope 設定の値を変更できます。生成された厳密に型指定されたプロパティは読み取り専用ですが、次を使用できます。

Properties.Settings.Default["App1"] = "bbb";

その後、Properties.Settings.Default.App1 は "bbb" を読み取ります。

これにより、設計時の設定をそのままにしておくことが可能になります。

ApplicationScope の設定には使用できませんSettings.Default.Save()が、これは意図的なものです。通常のユーザーには、Program Files のサブフォルダーに書き込む権限がありません。

于 2009-06-06T13:51:56.313 に答える