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 :

Requête paramétrée et IDENTIY


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2012
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 19
    Par défaut Requête paramétrée et IDENTIY
    Bonjour à tous,

    J'essaye de remplir une table en fonction de différentes données mais j'ai un soucis qui me bloque depuis un petit moment.

    En effet dans ma table a remplir j'ai une colonne qui est en mode auto increment (donc IDENTITY) cependant impossible d'effectuer une requete :

    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
     Public Sub fonction_sauvegarde_validation_formulaire(ByVal nom_table)
            Dim mycommand As SqlCommand
            Dim strSQl_insert As String
     
     
            'strSQl_insert_formulaire = Maconnexion.CreateCommand()
            'strSQl_insert_formulaire.CommandText = "INSERT INTO dbo.Table_historique VALUES('','" & nom_table & "','" & TextBox1.Text & "','" & TextBox2.Text & "','" & TextBox3.Text & "')"
     
            strSQl_insert = "SET IDENTITY_INSERT dbo.Table_historique ON; INSERT INTO dbo.Table_historique VALUES ( '1', @TYPE, @Date, @Utilisateur, @Commentaires); SET IDENTITY_INSERT dbo.Table_historique OFF"
            mycommand = New SqlCommand(strSQl_insert, Fonctions_CONNEXION.Maconnexion)
     
            With mycommand.Parameters
                '.Add(New SqlParameter("@IDHISTO", SqlDbType.Int, 32))
                .Add(New SqlParameter("@TYPE", SqlDbType.NVarChar, 50))
                .Add(New SqlParameter("@Date", SqlDbType.SmallDateTime, 32))
                .Add(New SqlParameter("@Utilisateur", SqlDbType.NVarChar, 50))
                .Add(New SqlParameter("@Commentaires", SqlDbType.NVarChar, 50))
            End With
     
            With mycommand
     
                '.Parameters("@IDHISTO").Value = 1
                .Parameters("@TYPE").Value = nom_table
                .Parameters("@Date").Value = CDate(TextBox1.Text)
                .Parameters("@Utilisateur").Value = TextBox2.Text
                .Parameters("@Commentaires").Value = TextBox3.Text
            End With
     
     
            compteur_histo += 1
            Try
                'Connection_SQL()
                mycommand.Connection.Open()
                mycommand.ExecuteNonQuery()
                Deconnection_SQL()
     
            Catch e As System.Data.SqlClient.SqlException
                MsgBox(e.Message)
            End Try
     
        End Sub
    Le message d'erreur est :
    An explicit value for the identity column in table 'db.table_historique' can only be specified when a column list is used and IDENTITY_INSERT is ON
    Merci de vos futurs conseils !

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    lors d'une insert avec identity_insert on il faut spécivier toutes colonnes avant le values (et donc après), y compris la colonne auto incrément

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    insert into (col1, col2 ...) values (...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir à tous,

    Citation Envoyé par Pol63 Voir le message
    y compris la colonne auto incrément
    tu es sur de cela? Car sur DB2 j'ai une erreur lorsque je mets la colonne auto-incrémentée dans un insert.

    Voici d'ailleurs un très bon tuto qui m'a bien aidé à comprendre cela et il ne mette pas non plus la colonne auto-incrémentée.

    Donc moi je spécifie toutes les colonnes SAUF la colonne auto-incrémentée.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    en temps normal aussi sur sql server si on met la colonne auto incrément on se fait jeter
    mais ici il a ajouté "set identity_insert nomtable ON"
    qui signifie qu'on veut spécifier le valeur de la colonne auto incrément, et non utiliser l'auto incrément
    dans ce cas sql server demande qu'on définisse toutes les colonnes
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Merci pour l'info

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ADO.Net][C#/Oracle] Comment utiliser une requête paramètrée ?
    Par kaboume dans le forum Accès aux données
    Réponses: 4
    Dernier message: 05/07/2005, 14h50
  2. Requête paramétrée
    Par lou.souleu dans le forum Access
    Réponses: 2
    Dernier message: 22/06/2005, 05h36
  3. [VB.NET] [ADO.NET] Requête paramétrée
    Par DotNET74 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 11/03/2005, 08h39
  4. Requête paramétrée qui remplit une DBLookUpComboBox
    Par navis84 dans le forum Bases de données
    Réponses: 6
    Dernier message: 02/12/2004, 21h23
  5. VBA & Requête paramétrée
    Par gripoil dans le forum Access
    Réponses: 4
    Dernier message: 25/11/2004, 09h54

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