Bonjour le forum et bon dimanche j'ai un datagridview qui m'affiche les salaires paramétrés par employé
chaque mois je dois modifier le nombre de jour travailler par employé et fait une insertion de tout les employés dans la table salaire.
le soucis est que lorsque je clique sur le bouton enregistré, en fonction du nombre de ligne, l'instruction insert peut prendre au-moins 20 à 30 minutes
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
For Each row As DataGridViewRow In dgvElementSalaire.Rows
            Call Connecter()
            cmd.CommandText = "select a.[IdUtilisateur] as [IdUtilisateur] from [dbo].[SALAIRE] a
INNER JOIN [dbo].[UTILISATEUR] F ON F.IdUtilisateur=a.IdUtilisateur
where f.LOGING='" & Label6.Text & "'"
            dv = cmd.ExecuteReader
            While dv.Read
                Procedure.c = dv.Item("IdUtilisateur")
            End While
            dv.Close()
            txtIdutilisateur.Text = Procedure.c
            Call Connecter()
            cmd.Connection = con
            If row.Cells("BASE").Value.ToString = "" And row.Cells("NOMBRE").Value.ToString = "" And row.Cells("HORAIRE").Value.ToString = "" And row.Cells("TAUX").Value.ToString = "" Then
                cmd.CommandText = "INSERT INTO [dbo].[SALAIRE]
([Date_Debut],[Date_Fin],[EM_ID],[SA_ID],[IDCOTISABLE],[IDNATURE],[IdUtilisateur],[MONTANT])
VALUES(@Date_Debut,@Date_Fin,@EM_ID,@SA_ID,@IDCOTISABLE,@IDNATURE,@IdUtilisateur,@MONTANT)"
                cmd.Parameters.Clear()
                dgvElementSalaire.Refresh()
                cmd.Parameters.Add("@Date_Debut", SqlDbType.DateTime)
                cmd.Parameters.Add("@Date_Fin", SqlDbType.DateTime)
                cmd.Parameters.Add("@EM_ID", SqlDbType.Int)
                cmd.Parameters.Add("@SA_ID", SqlDbType.Int)
                cmd.Parameters.Add("@IDCOTISABLE", SqlDbType.Int)
                cmd.Parameters.Add("@IDNATURE", SqlDbType.Int)
 
                cmd.Parameters.Add("@IdUtilisateur", SqlDbType.Int)
 
 
                cmd.Parameters.Add("@MONTANT", SqlDbType.Decimal)
 
 
 
                cmd.Parameters(0).Value = dtpDateDebut.Value
                cmd.Parameters(1).Value = dtpDateFin.Value
                cmd.Parameters(2).Value = row.Cells("EM_ID").Value
                cmd.Parameters(3).Value = row.Cells("SA_ID").Value
                cmd.Parameters(4).Value = row.Cells("IDCOTISABLE").Value
                cmd.Parameters(5).Value = row.Cells("IDNATURE").Value
 
                cmd.Parameters(6).Value = txtIdutilisateur.Text
 
 
                cmd.Parameters(7).Value = Val(row.Cells("MONTANT").Value)
 
                cmd.ExecuteNonQuery()
            Else
                cmd.CommandText = "INSERT INTO [dbo].[SALAIRE]
([Date_Debut],[Date_Fin],[EM_ID],[SA_ID],[IDCOTISABLE],[IDNATURE],[IdUtilisateur],[BASE],[NOMBRE],[HORAIRE],[TAUX],[MONTANT])
VALUES(@Date_Debut,@Date_Fin,@EM_ID,@SA_ID,@IDCOTISABLE,@IDNATURE,@IdUtilisateur,@BASE,@NOMBRE,@HORAIRE,@TAUX,@MONTANT)"
                cmd.Parameters.Clear()
                dgvElementSalaire.Refresh()
                cmd.Parameters.Add("@Date_Debut", SqlDbType.DateTime)
                cmd.Parameters.Add("@Date_Fin", SqlDbType.DateTime)
                cmd.Parameters.Add("@EM_ID", SqlDbType.Int)
                cmd.Parameters.Add("@SA_ID", SqlDbType.Int)
                cmd.Parameters.Add("@IDCOTISABLE", SqlDbType.Int)
                cmd.Parameters.Add("@IDNATURE", SqlDbType.Int)
 
                cmd.Parameters.Add("@IdUtilisateur", SqlDbType.Int)
                cmd.Parameters.Add("@BASE", SqlDbType.Decimal)
                cmd.Parameters.Add("@NOMBRE", SqlDbType.Decimal)
                cmd.Parameters.Add("@HORAIRE", SqlDbType.Decimal)
                cmd.Parameters.Add("@TAUX", SqlDbType.Decimal)
                cmd.Parameters.Add("@MONTANT", SqlDbType.Decimal)
 
 
 
                cmd.Parameters(0).Value = dtpDateDebut.Value
                cmd.Parameters(1).Value = dtpDateFin.Value
                cmd.Parameters(2).Value = row.Cells("EM_ID").Value
                cmd.Parameters(3).Value = row.Cells("SA_ID").Value
                cmd.Parameters(4).Value = row.Cells("IDCOTISABLE").Value
                cmd.Parameters(5).Value = row.Cells("IDNATURE").Value
 
                cmd.Parameters(6).Value = txtIdutilisateur.Text
                cmd.Parameters(7).Value = Val(row.Cells("BASE").Value)
                cmd.Parameters(8).Value = Val(row.Cells("NOMBRE").Value)
 
                cmd.Parameters(9).Value = Val(row.Cells("HORAIRE").Value)
 
                cmd.Parameters(10).Value = Val(row.Cells("TAUX").Value)
 
                cmd.Parameters(11).Value = Val(row.Cells("MONTANT").Value)
 
                cmd.ExecuteNonQuery()
            End If
            Call deconnecter()
 
        Next
        MsgBox("Ajout effectué avec succès")
 
        Call deconnecter()
je voudrais savoir si c'est possible de faire mieux? si oui comment faire?