Dataset avec 2 tables en relation (VB.Net)

Signaler
Messages postés
76
Date d'inscription
dimanche 25 juillet 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
Messages postés
76
Date d'inscription
dimanche 25 juillet 2004
Statut
Membre
Dernière intervention
20 mars 2006
-
Est-ce qu'il y a un moyen de trouver le ID de la ligne créé dans le dataset avec. VB.Net

Je m'explique. J'ai un Dataset qui contient 2 table en relation (SoumissionID). Ma Premiere table (T_Vente) a les info général du client, ca clé primaire est SoumissionID. La deuxieme table (T_Vente_Detail) a toutes les info de l'achat, ca clé primaire est VenteDetailID. Dans cette deuxieme table il y a aussi SoumissionID qui fait le lien entre les 2 tables.

Je remplie manuellement le dataset, mais je n'arrive pas à savoir le ID créé de la table T_Vente. Est-ce qu'il y a un moyen un peu comme SQL que tu peux savoir avec le IDENTITY.

Voici un bout de code:

Private Sub AjoutSoumissionVente()
Dim objDataTable As DataTable
Dim objDataRow As DataRow
Dim row As XceedGrid.CellRow = ValueRow1
Dim iSoumissionID As Int32
Dim row2 As Xceed.Grid.DataRow
Dim cell2 As Xceed.Grid.DataCell
Dim objAjoutRow2 As DataRow


Try
If cbNom.Text <> "" Then
'Pour la table T_Vente
Dim objAjoutRow As DataRow
objAjoutRow = DatasetVenteTemp.Tables(0).NewRow()
objAjoutRow2 = DatasetVenteTemp.Tables(1).NewRow()
objAjoutRow.Item("ClientID") = 1 ' Valeur pour test
objAjoutRow.Item("EmployeID") = 1 ' Valeur pour test
objAjoutRow.Item("Transport") = CDec(txtTransport.Text)
objAjoutRow.Item("SousTotal") = row.Cells("Column9").Value
objAjoutRow.Item("TPS") = CDec(lblTPS.Text)
objAjoutRow.Item("TVQ") = CDec(lblTVQ.Text)
objAjoutRow.Item("Total") = CDec(lblTotal.Text)
objAjoutRow.Item("DateSoumission") = dtSoumission.Text
objAjoutRow.Item("Soumission") = dtVente.Checked
objAjoutRow.Item("DateVente") = dtVente.Text
objAjoutRow.Item("Notes") = txtNotes.Text
DatasetVenteTemp.Tables(0).Rows.Add(objAjoutRow)
iSoumission = DatasetVenteTemp.Tables(0).GetType.GetField("SoumissionID").GetValue()


'Pour la table T_Vente_Detail
For Each row2 In GridControl2.DataRows
For Each cell2 In row2.Cells
objAjoutRow = DatasetVenteTemp.Tables(1).NewRow()
Dim value As Object = cell2.Value
Select Case cell2.FieldName
Case "Column1"
objAjoutRow2.Item("ItemID") = CInt(value)
Case "Column5"
objAjoutRow2.Item("Qte") = CInt(value)
Case "Column8"
objAjoutRow2.Item("PrixVendu") = CDec(value)
End Select
objAjoutRow2.Item("SoumissionID") = CType(iSoumissionID, Int32)
DatasetVenteTemp.Tables(1).Rows.Add(objAjoutRow)
Next
Next
Me.Close()
End If
Catch ex As Exception
DatasetVenteTemp = DatasetVenteOriginal
MsgBox(ex.Message)
End Try
End Sub

En passant Xceed, c'est un autre genre de datagrid plus performant

Merci.

1 réponse

Messages postés
76
Date d'inscription
dimanche 25 juillet 2004
Statut
Membre
Dernière intervention
20 mars 2006

en me relisant j'ai vu que j'avais un probleme dans l'ajout dans la table T_Vente_Detail. Mai je n'arrive pas a trouver le ID par contre

'Pour la table T_Vente_Detail
For Each row2 In GridControl2.DataRows
objAjoutRow2 = DatasetVenteTemp.Tables(1).NewRow()
For Each cell2 In row2.Cells
Dim value As Object = cell2.Value
Select Case cell2.FieldName
Case "Column1"
objAjoutRow2.Item("ItemID") = CInt(value)
Case "Column5"
objAjoutRow2.Item("Qte") = CInt(value)
Case "Column8"
objAjoutRow2.Item("PrixVendu") = CDec(value)
End Select
objAjoutRow2.Item("SoumissionID") = 3
Next
DatasetVenteTemp.Tables(1).Rows.Add(objAjoutRow2)
Next