2016-10-21 3 views
0

Ich versuche, eine Liste von Raten in einem Programm zu erstellen, wo die Raten einen Monat von heute ausgehen, so dass eine Erinnerung an den Benutzer gesendet werden kann, um sie zu erweitern. nur mein Code dafür ist, unterErstellen einer String-Liste von Werten in einer Datentabelle

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 

Wenn jedoch durch diesen Code treten, kann ich sehen, dass rDt 3 Reihen hat (wie ich erwartet hatte, 1-Rate von jeder Tabelle als Test), aber die For Each Schleife Iteriert einmal, so dass nur 1 der 3 Elemente auf die Zeichenfolge verkettet wird.

Warum ist das, und wie kann ich es beheben?

Antwort

1

Sie überschreiben jedes Mal rates.

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

Sie müssen es ändern zu

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

der Extra Komma Seien Sie vorsichtig.

Verwandte Themen