Dataset avec 2 tables en relation (VB.Net)

cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006 - 21 sept. 2005 à 09:21
cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006 - 21 sept. 2005 à 09:38
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

cs_Creat Messages postés 76 Date d'inscription dimanche 25 juillet 2004 Statut Membre Dernière intervention 20 mars 2006
21 sept. 2005 à 09:38
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
0
Rejoignez-nous