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

JDBC Java Discussion :

Insérer un enregistrement dans une table d'une BD SQLServer


Sujet :

JDBC Java

  1. #1
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut Insérer un enregistrement dans une table d'une BD SQLServer
    Bonjour,
    j'utilise le langage java et le SQLServer 2005 comme SGBD.
    je n'arrive pas à insérer un nouvel enregistrement dans une table ayant un champs auto-incremente. voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    String requete_insertion_transaction_commercant = "Insert into Transaction_Banque values('',?,?,?)";
                           PreparedStatement statement_insertion_transaction_commercant = idconnect.prepareStatement(requete_insertion_transaction_commercant);
                           statement_insertion_transaction_commercant.setObject(1,rslt_idclient);
                           String transaction_commercant = "+" + montant + "";
                           statement_insertion_transaction_client.setObject(2,transaction_commercant);
                           String transaction_commercant_date = "12/3/2009";
                           statement_insertion_transaction_client.setObject(3,transaction_commercant_date);
                           statement_insertion_transaction_commercant.executeUpdate();
    et voici l'erreur que je reçois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    [Microsoft][ODBC SQL Server Driver][SQL Server]Une valeur explicite de la colonne identité de la table 'Transaction_Banque' ne peut être spécifiée que si la liste des colonnes est utilisée et si IDENTITY_INSERT est défini sur ON.
    j'aimerai savoir comment faire pour insérer un enregistrement dans une table ayant un champs auto-incremente en utilisant java.

    cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Insert into Transaction_Banque values('',?,?,?)";
    marche avec Mysql et non avec SQLServer. merci d'avance pour les réponses.

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Citation Envoyé par legide Voir le message
    j'aimerai savoir comment faire pour insérer un enregistrement dans une table ayant un champs auto-incremente en utilisant java.
    Normallement on met "NULL" et pas "''"pour les champs autoinc


  3. #3
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut
    j'ai le même message d'erreur.

  4. #4
    Membre éprouvé Avatar de fraco
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 750
    Points : 934
    Points
    934
    Par défaut
    peut-être sans mentionner le champ auto-incrémenté ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    "Insert into Transaction_Banque values(?,?,?)"
    à la place de
    "Insert into Transaction_Banque values('',?,?,?)"

  5. #5
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut
    Merci pour la réponse. Mais ça ne marche toujours pas!

  6. #6
    Membre du Club
    Inscrit en
    Mars 2007
    Messages
    140
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 140
    Points : 62
    Points
    62
    Par défaut
    Bonjour,
    en utilisant le langage java, ça ne marche pas mais avec C# ça passe.

    voici le code java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    String requete_insertion_transaction_commercant = "Insert into Transaction_Banque " +
                                   "(idcompte_transaction, montant_transaction, date_transaction)" +
                                   " values(?,?,?)";
                           PreparedStatement statement_insertion_transaction_commercant = idconnect.prepareStatement(requete_insertion_transaction_commercant);
                           statement_insertion_transaction_commercant.setObject(1,rslt_idclient);
                           String transaction_commercant = "+" + montant + "";
                           statement_insertion_transaction_client.setObject(2,transaction_commercant);
                           String transaction_commercant_date = "12/3/2009";
                           statement_insertion_transaction_client.setObject(3,transaction_commercant_date);
                           statement_insertion_transaction_commercant.executeUpdate();
    et voici le code C#


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    string montant_transaction_commercant = " + " + montant;
                            Command_update_compte.CommandText = " Insert into Transaction_Banque (idcompte_transaction, montant_transaction, date_transaction) values(@idcompte_transaction2, @montant_transaction2, @date_transaction2) ";
                            Command_update_compte.Parameters.Add("@idcompte_transaction2", System.Data.SqlDbType.Int);
                            Command_update_compte.Parameters.Add("@montant_transaction2", System.Data.SqlDbType.VarChar, 20);
                            Command_update_compte.Parameters.Add("@date_transaction2", System.Data.SqlDbType.DateTime);
                            Command_update_compte.Parameters["@idcompte_transaction2"].Value = IdClient_Compte_commercant;
                            Command_update_compte.Parameters["@montant_transaction2"].Value = montant_transaction_commercant;
                            Command_update_compte.Parameters["@date_transaction2"].Value = transaction_client_date;
                            Command_update_compte.Prepare();
                            Command_update_compte.ExecuteNonQuery();
     
                            Console.Out.WriteLine("La mise à jour de la tqble transaction pour le commercant effectuée avec succès");
    je trouve ça vraiment Bizarre!!!!

    merci pour l'aide

Discussions similaires

  1. Réponses: 11
    Dernier message: 11/07/2014, 11h47
  2. [WD18] Metre une colonne d'une Table sur une ligne d'une autre Table
    Par Totophe2 dans le forum WinDev
    Réponses: 2
    Dernier message: 22/11/2013, 12h58
  3. Réponses: 1
    Dernier message: 19/10/2011, 12h13
  4. Copier les enregistrements d'une table vers une table d'une autre DB
    Par karinette21 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2008, 21h50
  5. enregistrement dans 2 champs d'une table
    Par jeanfi77 dans le forum Administration
    Réponses: 2
    Dernier message: 19/03/2007, 11h41

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