2017-07-28 9 views
0

私はこれについていくつかの助けをしたいと思っています。私はgoogleで検索しようとしましたが、運がないとここで検索しようとしました。私がこれまで試してみました何vb.netのmy.settingsの名前と値でforループを実行するにはどうすればよいですか?

は以下の通りです: -

For Each value As Configuration.SettingsPropertyValue In My.Settings.PropertyValues 

    Dim myrecord As String = My.Settings.PropertyValues.ToString 

    sql_all_matching_records = String.Format("") 

Next 

enter image description here が、私は、デバッガモードで実行し、forループ内のブレークポイントを入れているときだけスキップされます。この。

私がしたいことは、my.settingsの変数名をループして、その値を取り出してSQLルックアップと比較できることです。私が苦労しているのは、my.settingsをループすることだけです。

EDIT1:ABOVEが回答されましたが、エラーが発生しましたが、コードが間違っていますか?私はvb.netが私に教えようとしていることを理解していません。私はそれが正しいと思った。

+1

に役立ちます願っています。これは、まだ設定がロードされていない状況のように感じますが、設定がどのように初期化されるかについてあまりよく知らないことを認めなければなりません。しかし、ループの前にその行を追加し、 "ダミー"設定の値を取得すると、PropertyValuesコレクションを埋めるように見えて、ループを実行できるようになりました – soohoonigan

+0

うわー - 良い答え - それは私に新しい問題を与えました、私は質問を編集し、上記の答えを正しいものとして投稿し、答えとして記入します。 –

答えて

2

免責条項のビットでポイントするように編集

、私は設定がロードされたときにどのように/ PropertyValuesコレクションが満たされますに慣れていないんだけど、それはいないようです設定値にアクセスするまで何かを保持する。これは厄介な回避策ですが、コレクションをループする前に設定から値を取得しているようです。 InvalidCast例外は、myrecord = collection.tostringを設定しようとしているために発生します。コレクションが複数の値を持つことはすでにわかっています。繰り返しているのでコレクションには.tostringを呼び出すだけではありません。これはArray.ToString()のようなもので、そのようには動作しません。あなたが実際に探しているものはvalue.PropertyValue.ToStringです。これは取得しようとしている設定値を保持します。これらの変更を適用すると、次のようになります。

Dim dummy As String = My.Settings.dummySetting 
    For Each value As System.Configuration.SettingsPropertyValue In My.Settings.PropertyValues 

     'Dim myrecord As String = My.Settings.PropertyValues.ToString 
     Dim myrecord As String = value.PropertyValue.ToString 

     sql_all_matching_records = String.Format("") 
    Next 

dummySettingは、私が呼び出す設定に入れるだけの空の値です。これは、私は、奇妙なソリューションあなたの問題を再現することができましたが、あなたがループする前に、あなたの設定(文字列= My.Settings.aSettingNameとしてすなわち薄暗いdummyString)からの値にアクセスする場合、動作しているようです

0

は私が

For Each value As Configuration.SettingsPropertyValue In My.Settings.PropertyValues 

    Dim myrecord As String = value.ToString 

    sql_all_matching_records = String.Format("") 

Next 

は、私はあなたのコードを試していない...あなたのライン#2が間違っていると思いますが、私はあなたがあなたのラインで何をしているかと思います3各設定のすべてのプロパティを取得し、連結されましたそれらを一つにする。正しいライン#2ではない#3

+0

こんにちは、回答では、デバッガの2行目にも到達しないので、2行目にブレークを入れますが、ループ全体をスキップすることはありません。 –

関連する問題