2016-10-21 6 views
0

私は今日から1ヶ月間料金が不足しているプログラムの料金リストを作成しようとしています。そうするために自分のコードただし、このコードをステップするとき、私はrDtが(テストとして、各テーブルから私が予想されたように、1つのレート)3行を有することが確認できデータテーブルに値の文字列リストを作成する

Try 
    Dim rDt As New DataTable 
    Dim r1Dt As New DataTable 

    Using rDa = New OleDbDataAdapter("SELECT DISTINCT [Comm_Code] FROM [Acquisition Commission] WHERE DateTo=?", con) 
     rDa.SelectCommand.Parameters.Add("@date", OleDbType.Date).Value = Date.Today.AddMonths(1) 
     rDa.Fill(r1Dt) 
    End Using 

    Dim r2Dt As New DataTable 
    Using r2Da = New OleDbDataAdapter("SELECT DISTINCT [Comm_Code] FROM [Commission Rates] WHERE DateTo=?", con) 
     r2Da.SelectCommand.Parameters.Add("@date", OleDbType.Date).Value = Date.Today.AddMonths(1) 
     r2Da.Fill(r2Dt) 
    End Using 

    Dim r3Dt As New DataTable 
    Using r3Da As New OleDbDataAdapter("SELECT DISTINCT [Comm_Code] FROM [Customer Special Rates] WHERE DateTo=?", con) 
     r3Da.SelectCommand.Parameters.Add("@date", OleDbType.Date).Value = Date.Today.AddMonths(1) 
     r3Da.Fill(r3Dt) 
    End Using 

    rDt = r1Dt.Copy 
    rDt.Merge(r2Dt) 
    rDt.AcceptChanges() 
    rDt.Merge(r3Dt) 
    rDt.AcceptChanges() 

    If rDt.Rows.Count > 0 Then 
     Dim rates As String = "" 
     For Each dr As DataRow In rDt.Rows 
      rates = dr.Item("Comm_Code") & ", " 
     Next 
     If MsgBox("The following rates; " & rates & "are set to expire in 1 month. Would you like to automatically extend these rates by 6 months?", MsgBoxStyle.YesNo, "Extend Rates") = MsgBoxResult.No Then 

     Else 

未満であるが、唯一のFor Eachループ1回反復するので、3つの項目のうち1つだけが文字列に連結されます。

これはなぜですか、どのように修正しますか?

答えて

1

毎回ratesを上書きします。

rates = dr.Item("Comm_Code") & ", "

あなたは余分なコンマの注意が必要

rates &= dr.Item("Comm_Code") & ", "

にそれを変更する必要があります。

関連する問題