Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Un piccolo problemino con BindingSource
lunedì 11 febbraio 2008 - 20.28
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
liuc
Profilo
| Junior Member
146
messaggi | Data Invio:
lun 11 feb 2008 - 20:28
Ciao,
ho nu piccolo problema con il salvataggio dei dati nel db .
Vi scirvo il codice che uso e poi vi spiego meglio il problema
Questo è il codice della mia procedura di salvataggio dei dati :
Private Sub SalvaSpedizione()
Dim Destinatario As wsContatti.DataSetContatti.CONTATTODETTAGLIRow
Dim wssped As New wsSpedizioni.wsSpedizione
Dim msg As String = ""
If DatiValidi(msg) Then
With SPEDIZIONEBindingSource
Try
For Each Destinatario In dsContatti.CONTATTODETTAGLI.Rows
If Destinatario.IsGruppo = 1 Then
Dim wscontatto As New wsContatti.wsContatto
Dim contatto As wsContatti.DataSetContatti.CONTATTODETTAGLIRow
For Each contatto In wscontatto.GetGroupMemberDetail(Destinatario.IdGruppo).CONTATTODETTAGLI.Rows
ImpostaDatiSpedizione(contatto)
ApplicaModificheDB()
SPEDIZIONEBindingSource.AddNew()
Next
Else
ImpostaDatiSpedizione(Destinatario)
ApplicaModificheDB()
SPEDIZIONEBindingSource.AddNew()
End If
Next
Catch ex As Exception
End Try
Me.DialogResult = Windows.Forms.DialogResult.OK
End With
Else
MsgBox(msg)
End If
End Sub
Private Sub ImpostaDatiSpedizione(ByVal contatto As wsContatti.DataSetContatti.CONTATTODETTAGLIRow)
With CType(CType(SPEDIZIONEBindingSource.Current, DataRowView).Row, wsSpedizioni.DataSetSpedizioni.SPEDIZIONERow)
.Data = DataSpedizione
.IdModalitaInvio = IdModalitaInvio
.DestinazioneCodiceComune = contatto.CodiceComune
.DestinazioneVia = contatto.Via
.IdContatto = contatto.IDContatto
.DocumentoData = DocumentoData
.DocumentoDataRicezione = DocumentoDataRicezione
.DocumentoIdUfficio = DocumentoIdUfficio
.DocumentoNumeroProtocollo = DocumentoNumeroProtocollo
End With
End Sub
Private Sub ApplicaModificheDB()
Dim wsSped As New wsSpedizioni.wsSpedizione
SPEDIZIONEBindingSource.EndEdit()
If dsSpedizioni.HasChanges Then
dsSpedizioni = wsSped.SaveData(dsSpedizioni.GetChanges)
End If
End Sub
In pratica all'interno del form do la possibilià all'utente di specificare un elenco di destinatari per una spedizione (corrispondenza).
Di fatto il DB è impostato in maniera tale da ammettere un unico destinatario per spedizione quindi devo aggiungere una spedizione per ciscuno dei destinatari selezionati:
- Per ogni destinatario in elenco
- Se il destinatario è un gruppo di contatti
- per ogni membro del gruppo
- applica i dati al record corrente (SPEDIZIONEBindingSource.Current)
- salva il record (ApplicaModificheDB)
- aggiungi un nuovo record (SPEDIZIONEBindingSource.AddNew())
- Se il destintario no è un gruppo
- applica i dati al record corrente (SPEDIZIONEBindingSource.Current)
- salva il record (ApplicaModificheDB)
- aggiungi un nuovo record (SPEDIZIONEBindingSource.AddNew())
Di fatto però quando ho più di un destinatario o un gruppo come destinatario, viene salvato solo il primo record , per le successive iterazioni il metodo HasChanges (in ApplicaModificheDB) restituisce false e quindi non vengono richiamate le procedure di aggiornamento del DB.
Dov'è che sbaglio ?
Grazie.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !