codice form
codice:
Private Sub cmdAggiornaEsci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdAggiornaEsci.Click
Dim AggControl As UserModificaViaggio.UserModificaViaggio
Dim ctrl As Control
iViaggio = 0
For Each ctrl In Me.Controls
If TypeOf ctrl Is UserModificaViaggio.UserModificaViaggio Then
AggControl = ctrl
AggControl.AggiornaRecord(AggControl, AggControl.labelIDVIAGGIO0.Text,AggControl)
End If
Next
iViaggio = 0
End Sub
codice usercontrol
codice:
Public Sub AggiornaRecord(ByRef ctrlAdd As UserModificaViaggio, ByRef IDVIAGGIO As Integer, ByRef CheckDestinazione As Control)
ConnParcoMacchine.ConnectionString = ParcoMacchineConnString
sql = "SELECT * FROM VIAGGI;"
Try
ConnParcoMacchine.Open()
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
daParcoMacchine.SelectCommand = New OleDbCommand(sql, ConnParcoMacchine)
daParcoMacchine.Fill(dsParcoMacchine, "VIAGGI")
ConnParcoMacchine.Close()
Dim cmdBuilderPosta As New OleDb.OleDbCommandBuilder(daParcoMacchine)
cmdBuilderPosta.QuotePrefix = "["
cmdBuilderPosta.QuoteSuffix = "]"
daParcoMacchine.InsertCommand = cmdBuilderPosta.GetInsertCommand
daParcoMacchine.UpdateCommand = cmdBuilderPosta.GetUpdateCommand
Dim strFilter As String
strFilter = "[IDVIAGGIO]=" & IDVIAGGIO
Dim drPosta() As DataRow
drPosta = dsParcoMacchine.Tables("VIAGGI").Select(strFilter)
Dim myDr2 As DataRow
Try
For Each myDr2 In drPosta
myDr2.Item("TARGA") = ctrlAdd.ComboBoxTarga1.Text
myDr2.Item("KM ATTUALI") = ctrlAdd.TextBoxKMArrivo1.Text
myDr2.Item("ORA PARTENZA") = ctrlAdd.TextBoxOraPartenza1.Text
myDr2.Item("ORA ARRIVO") = ctrlAdd.TextBoxOraArrivo1.Text
myDr2.Item("DATA") = ctrlAdd.TextBoxData1.Text
myDr2.Item("DESTINAZIONE1") = ctrlAdd.ComboBoxDestinazione1.Text
'myDr2.Item("DESTINAZIONE2") = ctrlAdd.Controls("Destinazione1").Text
'myDr2.Item("DESTINAZIONE3") = ctrlAdd.Controls("Destinazione2").Text
'myDr2.Item("DESTINAZIONE4") = ctrlAdd.Controls("Destinazione3").Text
NumeroColonne()
Dim i As Integer
Dim sNomeCampo As String
Dim sNomeControllo As String
For i = 1 To iNumeroColonne - 12
sNomeCampo = "DESTINAZIONE" & (i + 1)
sNomeControllo = "Destinazione" & i
myDr2.Item(sNomeCampo) = ctrlAdd.Controls(sNomeControllo).Text
Next
Next
daParcoMacchine.Update(dsParcoMacchine, "VIAGGI")
Catch ex As Exception
MsgBox("errore", MsgBoxStyle.Critical, "errore")
End Try
dsParcoMacchine.Clear()
end sub
il problema sorge nel ciclo for dello usercontrol annidato nel ciclo for each del datarow il ciclo for non aggiorna icampi mentre nella parte di codice indenta to con la '
'myDr2.Item("DESTINAZIONE2") = ctrlAdd.Controls("Destinazione1").Text
'myDr2.Item("DESTINAZIONE3") = ctrlAdd.Controls("Destinazione2").Text
'myDr2.Item("DESTINAZIONE4") = ctrlAdd.Controls("Destinazione3").Text
il codice funzionerebbe perfettamente io ho la necessita pero di iterare con for non conoscendo a priori il numero di colonne grazie per l'aiuto