Bonjour,
Dans un même cas, je procède de la façon suivante :
- Clic dans le RowHeader (case grise à gauche de la ligne) -> affichage des données en TextBox
- Modification de la bd (update SQL) selon TextBox
- Réaffichage dans le DataGridview
Ci-dessous un petit bout de mon code (VB2005) :
Private Sub DGVadr_RowHeaderMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGVadr.RowHeaderMouseClick
CBcre.Checked = False ' Mode création
CBmod.Checked = True ' Mode modification
' Sélection par le DataGrid de l'enregistrement à modifier
With ds_adr.Tables("CONTRADR")
idx_adr = .Rows(DGVadr.CurrentCellAddress.Y).Item("SEQ_NUM")
TBnom.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_NAME")
TBadr.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_ADD")
TBnpa.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_ZC")
TBloca.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_TOWN")
MTBtel.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_PHONE")
TBcontact.Text = .Rows(DGVadr.CurrentCellAddress.Y).Item("CT_CONTACT")
End With
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
vartrav = TBnom.Text
TBnom.Text = vartrav.Replace("'", "''")
vartrav = TBadr.Text
TBadr.Text = vartrav.Replace("'", "''")
vartrav = TBloca.Text
TBloca.Text = vartrav.Replace("'", "''")
' Création adresse de livraison
If CBcre.Checked = True Then
' Prochain N° d'adresse
With ds_adr.Tables("CONTRADR")
Try
idx_adr = .Rows(.Rows.Count - 1).Item("SEQ_NUM") + 1
Catch ex As Exception
idx_adr = 1
End Try
End With
strsql = "INSERT INTO CONTRADR (ESRC_FILE, ES_NUM, SEQ_NUM, CT_NAME, CT_ADD, CT_ZC, CT_TOWN, CT_PHONE, "
strsql = strsql & "CT_FAX, CT_CONTACT, LOC_CODE) VALUES ('" & ds_dossier.Tables("REF_PS").Rows(idx_dossier).Item("ESRC_FILE") & "', '"
strsql = strsql & ds_chantier.Tables("CONTRACT").Rows(idx_chantier).Item("ES_NUM") & "', '"
strsql = strsql & idx_adr & "', '" & TBnom.Text & "', '" & TBadr.Text & "', '" & TBnpa.Text & "', '" & TBloca.Text & "', '"
strsql = strsql & MTBtel.Text & "', '" & ds_vhc.Tables("TRUCKVEH").Rows(idx_vhc).Item("VEHI_CODE") & "', '"
strsql = strsql & TBcontact.Text & "', '" & ds_situ.Tables("LOCATION").Rows(idx_situ).Item("LOC_CODE") & "') "
Exec_cmds_sql()
conn.Close()
Affichage_adresses()
End If
' Modification adresse de livraison
If CBmod.Checked = True Then
strsql "UPDATE CONTRADR SET CT_NAME '" & TBnom.Text & "', CT_ADD = '" & TBadr.Text & "', "
strsql strsql & "CT_ZC '" & TBnpa.Text & "', CT_TOWN = '" & TBloca.Text & "', CT_PHONE = '" & MTBtel.Text & "', "
strsql strsql & "CT_FAX '" & ds_vhc.Tables("TRUCKVEH").Rows(idx_vhc).Item("VEHI_CODE") & "', CT_CONTACT = '"
strsql strsql & TBcontact.Text & "', LOC_CODE '" & ds_situ.Tables("LOCATION").Rows(idx_situ).Item("LOC_CODE") & "' "
strsql strsql & "WHERE ESRC_FILE '" & ds_dossier.Tables("REF_PS").Rows(idx_dossier).Item("ESRC_FILE") & "' AND "
strsql strsql & "ES_NUM '" & ds_chantier.Tables("CONTRACT").Rows(idx_chantier).Item("ES_NUM") & "' AND "
strsql strsql & "SEQ_NUM '" & idx_adr & "' "
Exec_cmds_sql()
conn.Close()
Affichage_adresses()
End If
End Sub
Cordiales salutations et bonne prog
dp