0

AppDomainで実行時に作成されるConnectionStringを読み取るWPFアプリケーションを作成しています。DataSetsは、アプリケーションルートのデフォルトのapp.configファイルを指しているため、DataSetsの使用を開始するまでは完全に機能します。

アプリを最初にロードすると、connStringは後で使用できるように変数として保存されます。私の最初の直感は、接続にその変数を使用することでした。これは、IO read7writeが少なくなり、システムが高速になることを意味するためです。接続文字列を変更することはできましたが、どこかで開始する必要があり、どこにあるのかわかりませんでした。

今、私は理解しようとしています。データセット(または設定)ファイルを取得して、アプリケーションルートフォルダーにあるデフォルトのファイルではなく、AppDomainにあるapp.configを読み取るにはどうすればよいですか。

参考までに、私はビジネスデータ中心のアプリを作成しています。接続文字列は各社の内部構成によって異なりますので、可変の接続文字列が必要です。繰り返しますが、これは私が行いました。

私の主な目標は、データを変数ファイルまたは単一ファイルに一元化することです。これにより、将来の頭痛の種が少なくなります。

前もって感謝します!

4

1 に答える 1

0

基本的に私は問題を解決することができました:

問題が実際に何であったか疑問に思っている場合: コードで app.config ファイルを読み取って ConnectionString を取得する必要はありませんでした。システムを起動したときに一度読むので、システムを使用している間ずっと読み続けるのはほとんど意味がありません。

ところで、これは SQL SERVER 2012 DB を使用した WPF APP です。

したがって、これはその方法です:

ステップ 1: [設定] ([プロジェクト] > [設定]) に移動し、DBConnString という名前の新しい項目を作成します ([タイプ] として [ConnectionString] を選択し、[スコープ] として [アプリケーション] を選択します)。そして、デフォルトの ConnectionString を入力します。データセットは設計時にこれを読み取るため、入力された文字列は実数でなければなりません。

ステップ 2: 設定ページで F7 を押してコード ビハインドを表示します。このコードを入力してください:

Partial Friend NotInheritable Class MySettings

Private Sub MySettings_SettingsLoaded(sender As Object, e As System.Configuration.SettingsLoadedEventArgs) Handles Me.SettingsLoaded
    Me.Item("DBConnString") = ConnStringVariable
End Sub End Class

プロジェクトのどの部分でも Settings クラスにアクセスする必要があるたびに、このコードは Loaded イベントで起動します。つまり、だれかが既定の接続文字列を読み取る前に、変更されます。初心者の場合は、ConnStringVariable を実際の変数に置き換えてください。

ステップ 3: データセットと DataTable を作成します。接続を求められると、新しいオプション DBConnString (MySettings) が表示されます。それを選択します。

設計時には、DataTables は手動で記述したデフォルトの ConnString を使用しますが、実行時には Settings.vb (または cs) クラスがデフォルトを変数に置き換えます。

この簡単なトリックにより、DB への接続を試行するたびにディスクにアクセスする必要がなくなり、プロジェクト全体で ConnectionString 変数を再利用できるようになります。

于 2013-03-20T18:10:51.173 に答える