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 :

[VB.net] Problème incrémentation auto (VB-SQLServer)


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut [VB.net] Problème incrémentation auto (VB-SQLServer)
    Salut,
    Voila j'ai un petit problème avec l'application que je suis entrain de programer en vb:

    J'ai une base de données sql server avec une table RAM :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CREATE TABLE
    ( IDRam Integer not null IDENTITY(1,1),
    TypeRam Varchar(10) ... )
    Dans mon appli j'ai les options Ajouter , Modifier, Supprimer

    Exemple:

    J'ai 1 DDR , 2 DIMM (OK)

    J'ajoute SIMM ==> 1 DDR , 2 DIMM , 3 SIMM (OK)

    Je supprime SIMM ==> 1 DDR , 2 DIMM (OK)

    J'ajoute SDRAM ==> 1 DDR , 2 DIMM , 4 SDRAM (IDRam passe directement à 4)



    Merci

  2. #2
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Tu peux nous montrer ton code au moment de tes insertions, suppressions,... stp
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    Par contre c'est un peu le bordel (j'ai pas encore appris le fonctionement des procédures et fonctions en vb )

    Insertion :
    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
     Private Sub BtnValider_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnValider.Click
     
            Dim strRequete As String
            strRequete = "INSERT INTO Ram (TypeRam, CapaciteRam) VALUES ('" & Me.combotyperam.Text & "', '" & Me.txtcaparam.Text & "')"
     
            'connexion'
            Dim Connexion As New SqlClient.SqlConnection
            Try
                Connexion.ConnectionString = "User ID=**; Pwd=*******; Server=***; Database=***;"
                Connexion.Open()
            Catch problem As Exception
                MessageBox.Show("Connexion impossible")
            End Try
     
            'chargement contenu table
            If Connexion.State <> 1 Then
                MessageBox.Show("La connexion au serveur n'a pas été réalisée")
            Else
                Try
                    Dim Command As New SqlClient.SqlCommand(strRequete, Connexion)
                    'Execution requete'
                    Command.ExecuteNonQuery()
                    Connexion.Close()
                    AjRam.Visible = False
                    'Procedure liste ram'
     
     
                Catch ex As Exception
                    MessageBox.Show("Erreur")
                End Try
                MessageBox.Show("Nouvelle RAM ajoutée avec succès!", "Ajout Ram", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        End Sub

    Suppression :
    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
      Private Sub BtnSupprimer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSupprimer.Click
            If MessageBox.Show("Confirmez-vous la suppression de cette Ram ?", "Suppression", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then
                'Suppression'
                Dim StrRequete As String
                StrRequete = "Delete Ram where idram = '" & DataListeRam.CurrentRow.Cells("id").Value & "'"
                'connexion'
                Dim Connexion As New SqlClient.SqlConnection
                Try
                    Connexion.ConnectionString = "User ID=***; Pwd=**; Server=**; Database=***;"
                    Connexion.Open()
                Catch problem As Exception
                    MessageBox.Show("Connexion impossible")
                End Try
     
                'chargement contenu table
                If Connexion.State <> 1 Then
                    MessageBox.Show("La connexion au serveur n'a pas été réalisée")
                Else
                    Try
                        Dim Command As New SqlClient.SqlCommand(StrRequete, Connexion)
                        'Execution requete'
                        Command.ExecuteNonQuery()
                        Connexion.Close()
                        AjRam.Visible = False
                        'Procedure liste ram'
     
     
                    Catch ex As Exception
                        MessageBox.Show("Erreur")
                    End Try
                    MessageBox.Show("Suppression RAM réussie!", "Suppression Ram", MessageBoxButtons.OK, MessageBoxIcon.Information)
                End If
            End If
        End Sub

  4. #4
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    C'est normal que ton dernier enregistrement passe à 4 car tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IDRam Integer not null IDENTITY(1,1)
    Donc donc IDRam est en incrémentation automatique, si tu supprimer le 3ème ton IDRam s'incrémente de 1
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    fonctionnement normal des champs auto incrément

    si tu mets 1 2 3 puis 4 et que tu supprimes 2, il ne va pas rendre disponible 2, c'est un auto incrément donc ca incrémente ...

    mais ca n'a rien de choquant, une clé de table est rarement montrée à l'utilisateur ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    ahh d'accord merci pour les réponses donc je peux laisser comme ça ?

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    et je cherche aussi à actualiser la liste des RAM quand l'utilisateur click sur OK dans la fenetre de confirmation (d'ajout, de modification ou de suppression)

    faut-il que je remette le code pour afficher la liste des RAM ou il ya un code spécial pour recharger la page ??

  8. #8
    Membre éclairé
    Avatar de m-mas
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2003
    Messages
    576
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2003
    Messages : 576
    Points : 719
    Points
    719
    Par défaut
    Essai frm.refresh, si tu travailles avec des objets il suffit d'ajouter cet enregistrement au data set sinon il faudra re-exécuter la requête ce qui n'est pas du tout conseillé !
    mon blog http://www.3click-solutions.com/actualites/

    MCP VB.NET (70-305) - (70-306) - (70-310)
    Développeur PHP / Wordpress

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tout dépend si tu est sur un client lourd ou du web

    frm.Refresh c'est pour du windows form et ca rafraichit graphiquement, ce qui est fait de tout manière automatiquement donc ca ne sert pas à grand chose

    sur un logiciel monoposte, pour mettre à jour l'ihm, il suffit de modifier ta collection de données, pas besoin de repasser par une requete

    pour rafraichir des données d'un logiciel multiposte, la méthode la plus simple c'est de rééexecuter la requete, ce qui n'est pas bien grave sur un réseau local ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 34
    Points : 16
    Points
    16
    Par défaut
    j'ai essayé frm.refresh mais ça ne fonctionne pas.

    j'ai essayé ça aussi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    'fin de l'insertion'
               ...
     Catch ex As Exception
                    MessageBox.Show("Erreur")
                End Try
          Me.close()
                MessageBox.Show("Nouvelle RAM ajoutée avec succès!", "Ajout Ram", MessageBoxButtons.OK, MessageBoxIcon.Information)
          Me.show()
            End If
        End Sub
    mais j'ai l'erreur sur me.show() :
    Impossible d'accéder à un objet supprimé.
    Nom de l'objet : 'FrmRam'

Discussions similaires

  1. problème d'auto-incrémentation de la clé primaire
    Par Jasmine80 dans le forum Administration
    Réponses: 5
    Dernier message: 09/07/2012, 09h57
  2. Problème champ auto-incrément sur SQL Server 2000
    Par samirmember dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/03/2010, 13h17
  3. problème d'auto incrémentation
    Par senv33 dans le forum Débuter
    Réponses: 8
    Dernier message: 24/02/2010, 13h43
  4. Problème d'auto-incrément
    Par rageice dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/12/2007, 23h33
  5. [VB.NET] [ADO.NET] Clef primaire auto incrémenté
    Par Guld dans le forum Accès aux données
    Réponses: 4
    Dernier message: 25/09/2004, 20h46

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