IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

datagridview clé primaire


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2011
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2011
    Messages : 267
    Par défaut datagridview clé primaire
    Bonjour
    Le code ci dessous permet d'enregistrer la modification d' une facture déja existante qui est sous forme d'un datagridview.
    Donc je commence par la suppression de l'ancienne avec la premiere partie et j'insere de nouveau dans la deuxième.
    Le code fonctionne parfaitement dans le cas ou j'ai pas un grand nombre de ligne mais si j'ai un nombre de ligne important il m'affiche
    violation de la clé primaire(LREF et LLIGNE sont la clé primaire)
    Merci de m'aider a resoudre ce problème.
    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
    94
    95
    96
    97
    98
     
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
     
                '**********************************suppression************************
     
                connexion.con.Open() ' ouverture de la connexion vers la base
                Dim cmd2 As New SqlCommand("delete from [hichem].[dbo].[FACTURELIGNE4] where LREF=" & txtCustomComplete.Text, connexion.con) ' la commande
                cmd2.ExecuteNonQuery()
                connexion.con.Close()
     
     
     
     
    '***************ajout****************************
                Dim i As Integer = 0
                Do
     
     
                    connexion.con.Open() ' ouverture de la connexion vers la base
                    Dim cmd As New SqlCommand("insert into [hichem].[dbo].[FACTURELIGNE4] (LREF,LCART,LDES,LQLIV,LPRXU,LREM,LTVA,LNOMCL,LAUXCL,LDATOP,LCTVA,LLIGNE) VALUES(@parm1,@parm2,@parm3,@parm4,@parm5,@parm6,@parm7,@parm8,@parm9,@parm10,@parm11,@parm12)", connexion.con) ' la commande
                    cmd.Parameters.Add("@parm1", SqlDbType.VarChar).Value = Me.txtCustomComplete.Text
                    cmd.Parameters.Add("@parm2", SqlDbType.VarChar).Value = Dg.Rows(i).Cells(0).Value
                    cmd.Parameters.Add("@parm3", SqlDbType.VarChar).Value = Dg.Rows(i).Cells(1).Value
     
     
                    Dim qte As Double
                    Dim ss As String = Dg.Rows(i).Cells(2).Value
                    qte = CDbl(ss)
     
                    cmd.Parameters.Add("@parm4", SqlDbType.Float).Value = qte
                    cmd.Parameters.Add("@parm5", SqlDbType.Int).Value = Dg.Rows(i).Cells(3).Value
                    cmd.Parameters.Add("@parm6", SqlDbType.Float).Value = Dg.Rows(i).Cells(4).Value
                    cmd.Parameters.Add("@parm7", SqlDbType.Float).Value = Dg.Rows(i).Cells(5).Value
     
                    cmd.Parameters.Add("@parm8", SqlDbType.VarChar).Value = Me.nom.Text
     
                    cmd.Parameters.Add("@parm9", SqlDbType.VarChar).Value = Me.code.Text
                    cmd.Parameters.Add("@parm10", SqlDbType.Date).Value = Me.dat.Text
     
                    Dim tva As String = Dg.Rows(i).Cells(5).Value
                    Select Case tva
     
                        Case 18
                            tva = 2
                        Case 22.5
                            tva = 2
     
                        Case 29
                            tva = 3
     
                        Case 0
                            tva = 0
     
                        Case 12
                            tva = 1
                        Case 15
                            tva = 1
     
                        Case 20
                            tva = 4
                        Case 20
                            tva = 4
                    End Select
     
                    tva = CStr(tva)
     
                    cmd.Parameters.Add("@parm11", SqlDbType.NVarChar).Value = tva
                    cmd.Parameters.Add("@parm12", SqlDbType.NVarChar).Value = Dg.Rows(i).Cells(9).Value
     
                    cmd.ExecuteNonQuery()
     
                    Dim c As String = Dg.Rows(i).Cells(0).Value
     
     
                    Dim cmd5 As New SqlCommand("UPDATE [hichem].[dbo].[ARTICLE] SET QTDISP=QTDISP+" & Dg.Rows(i).Cells(11).Value & "-" & Dg.Rows(i).Cells(2).Value & " WHERE ART='" & c & "'", connexion.con) ' la commande
                    cmd5.ExecuteNonQuery()
     
     
     
     
                    i = i + 1
                    connexion.con.Close()
                Loop While Dg.Rows(i).Cells(0).Value <> ""
     
     
     
                '*************************nbre ligne***********************
                Dim b As Integer
                nlg = 0
                For b = 0 To 120
                    If Dg.Rows(b).Cells(0).Value <> "" Then
                        nlg = nlg + 1
                    Else
                        Exit For
                    End If
                Next
                nl.Text = nlg

  2. #2
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    Bonjour,

    Pourquoi ne pas faire directement un update de ta commande?

    Plutot que de supprimé et ajouter la commande ensuite?

    ++

Discussions similaires

  1. [Débutant] Datagridview : clé primaire
    Par jeremyvb11 dans le forum VB.NET
    Réponses: 4
    Dernier message: 02/01/2013, 23h51
  2. Import data d'Excel ds 2 table lié par clé primaire
    Par lord_paco dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 10/05/2005, 09h31
  3. clé primaire aléatoire
    Par peuh dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 23/06/2003, 20h51
  4. Procédure stocké:Insert et renvoie de la clé primair
    Par caramel dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 17/04/2003, 09h34
  5. Problème pour récupérer la clé primaire
    Par caramel dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 11/04/2003, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo