Salut

Je voudrais savoir comment enregistrer plusieurs lignes saisies d'un DataGrdiView d'un seul coup c'est-à-dire saisir la ligne d'indice 0 puis d'indice 1 et ainsi de suite jusqu'à par exemple la ligne d'indice 9 donc on aura saisi 10 lignes en tout puis d'un click sur le bouton "Save" par exemple on enregistre ces 10 lignes , on suppose qu'on a 5 colonnes.

J'ai essayé avec une boucle sur les lignes mais ça ne marche pas , peut-etre que je n'ai pas bien utilisé le bon code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub btnSaveAll_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs)
 
       cn.ConnectionString = strcon
 
        Dim cmdAdd As New SqlCommand
        cmdAdd.Connection = cn
 
        For i As Integer = 0 To dgv.Rows.Count - 1
 
            cmdAdd.Parameters.Clear()
 
            Dim pr_id As New SqlParameter("@id", SqlDbType.Int)
            pr_id.Value = dgv.Rows(i).Cells(0).Value
            cmdAdd.Parameters.Add(pr_id)
 
            Dim pr_nom As New SqlParameter("@nom", SqlDbType.VarChar)
            pr_nom.Value = dgv.Rows(i).Cells(1).Value
            cmdAdd.Parameters.Add(pr_nom)
 
            Dim pr_prenom As New SqlParameter("@prenom", SqlDbType.VarChar)
            pr_prenom.Value = dgv.Rows(i).Cells(2).Value
            cmdAdd.Parameters.Add(pr_prenom)
 
 
 
           cmdAdd.CommandText = " insert into MaTable (id,nom,prenom)  
           values(@id,@nom,@prenom)"
 
        Next
 
        If cn.State Then cn.Close()
 
        cn.Open()
        cmdAdd.ExecuteNonQuery()
        cn.Close()
 
        MsgBox("Enregistrement Réussi !", MsgBoxStyle.Information")
 
End Sub
End Sub

Voilà , Merci pour tout