Ciao a tutti,
Sto cercando di trovare uno standard per la selezione di datarow dal database in oggetti.
Ho trovato questa soluzione e volevo sottoporvela per vedere cosa ne pensate :
Database
tbl banco
tbl bancoTempoPortata
Relazione
banco - bancoTempoPortata
1 - N
codice:
Public Class banco
Public prop1 as string
....
Public propN as string
Public dicTAp As New Dictionary(Of Double, tempoPortata)
//Metodo
Public Function loadTempoPortate(ByVal idCont As Integer)
Dim tempAp As New tempoPortata
tempAp.db = Me.db
dicTAp = tempAp.getListTApertureFromBancoCont(Me.cod, idCont)
End Function
End Class
Public Class tempoPortata
Public Function getListTApertureFromBancoCont(ByVal codBanco As Integer, ByVal idCont As Integer) As Dictionary(Of Double, tempoPortata)
Dim arrTap As New Dictionary(Of Double, tempoPortata)
Dim tmpTAp As tempoPortata
db.SQL = "SELECT * FROM banchiTempoPortata WHERE [tempPortata_codBanco] = '" & codBanco & "' AND [tempPortata_idCont] = '" & idCont & "' "
For Each row In db.getDT("banchiTempoPortata").Rows
tmpTAp = New tempoPortata
tmpTAp.db = Me.db
tmpTAp.load(row)
arrTap.Add(Me.portata, tmpTAp)
Next
Return arrTap
End Function
Private Function load(ByVal row As DataRow)
Try
Me.id = row("tempPortata_id")
Me.codBanco = row("tempPortata_codBanco")
Me.idCont = row("tempPortata_idCont")
Me.portata = row("tempPortata_portata")
Me.tApertura = row("tempPortata_tApertura")
Me.caso = row("tempPortata_caso")
Return True
Catch ex As Exception
Me.lastError = ex.Message
db.Disconnetti()
Return False
End Try
End Function
End Class
Ho omesso un po di dettagli inutili, ma l'idea di base è questa
La classe banco ha come proprietà una dictionary che come chiave ha un proprietà unicova della classe tempoportata e come value l'oggetto tempoportata
Nel metodo loadTempoPortata della classe banco io vado a richiama un metodo della classe tempoPortata che mi restituisce una dictionary con cui aggiorno la dictionary del banco.
Come vi sembra?