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?