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

C# Discussion :

requete insert INTO [Débutant]


Sujet :

C#

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut requete insert INTO
    Bonjour,

    j'ai pourtant l'habitude d'utiliser la requête INSERT mais la je bug :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    requete = "INSERT INTO Element(Distgauche,Distgout,lon,lar,zone,nom,id_proj) VALUES('100','100','100','100','100','100','26');";
    J'ai un erreur dans la reqûete INSERT INTO d'après le compilateur.
    J'útilise une base access.
    Pour être sûr de ne pas faire d'erreur de type j'ai recréer ma table élément et il n'y a que des string ...

    Merci.

  2. #2
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    bonjour,

    copie/colle la requête obtenue dans access et tu verras bien ce qu'il va te dire...

    Sinon c'est quoi ton erreur? Je ne vois actuellement rien de particulier
    Un âne se croit savant parce qu'on le charge de livres (proverbe américain)

    N'oubliez pas de avant de
    Pas de question techniques par MP, c'est contre la philosophie du forum

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut re
    Merci de ton attention:

    Je ne comprend pas !!! l'erreur est " Erreur de syntaxe dans l'expression INSERT INTO"

    je viens de détruire ma table et de la recréer, la requête onctionne avec toutes les autres tables mais pas la nouvelle. Il doit y avoir un truc.
    je vais m'exliquer un peu plus. Je souhaite après un enregistrement dans une table récupérer 'id auto généré que j'inclus dans mon deuxieme INSERT (les tables sont liés par cet id)
    Je copie colle au cas ou ...

    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
     
    // J'ajoute une row a mon datatable et cela plusieurs oir si il y a plusieurs objets
     
     DataRow ElementRow = Elem.NewRow();
                ElementRow["Dgauche"] = Element.Distgauche;
                ElementRow["Dgout"] = Element.Distgout;
                ElementRow["Lar"] = Element.Lon;
                ElementRow["Lon"] = Element.Lar;
                ElementRow["Zone"] = Element.Zone;
                ElementRow["Nom"] = Element.Nom;
                ElementRow["Idproj"] = id_projet;
                Elem.Rows.Add(ElementRow);
     
    // Je boucle les rows pour creer des tableaux de string que j'envois dans la ethode de ma classe Base_donnees
    foreach(DataRow row in Elem.Rows)
                            {
                                reussi = false;
                                newelem = new string[7];
                                newelem[0] = row["Dgauche"].ToString();
                                newelem[1] = row["Dgout"].ToString();
                                newelem[2] = row["Lar"].ToString();
                                newelem[3] = row["Lon"].ToString();
                                newelem[4] = row["Zone"].ToString();
                                newelem[5] = row["Nom"].ToString();
                                newelem[6] = id_projet.ToString();
     
                                IdEtat = Base_Donnees.Ajouter_Un_Enreg_A_Une_Table("Elem", newelem);
     
    //Une ois dans la classe ca done ca
     
    public Dictionary<int, bool> Ajouter_Un_Enreg_A_Une_Table(DataTable table, string[] Enreg)
    		{
    			/* Pour chaque champs de l'enregistrement en question 
    			 * On va créer la chaine nécessaire à l'ajoût d'un enregistrement */
    			string proprietes="";
     
    			for(int i=0;i<Enreg.Length;i++)
    			{
    				proprietes += (Enreg[i] + ",");
    			}
    			//on enlève la virgule de fin de chaîne
    			proprietes=proprietes.Substring(0,proprietes.Length-2);
     
    			//on  vérifie que l'ajoût c'est bien passé 
    			return (this.SQL.Ajouter_Un_Enreg(table,proprietes));
    		}
     
    public Dictionary<int, bool> Ajouter_Un_Enreg(DataTable Table, string proprietes)
    		{
    			bool Etat=false;
     
    			OleDbConnection connec=new OleDbConnection(this.ParametresConnection);
                Dictionary<int, bool> IdEtat = new Dictionary<int, bool>();
    			string champs="";
    			//on crée une string qui va prendre tous les noms des champs
    			//sauf l'ID
    			for(int i=1;i<Table.Columns.Count;i++)
    				champs+=Table.Columns[i].ColumnName + ",";
    			//pour enlever la virgule de fin de chaine
    			champs=champs.Substring(0,champs.Length-1);
     
    			try
    			{
                    string requete = "INSERT INTO " + Table + "(" + champs + ") VALUES(\'" + proprietes + "\');";
                   // requete = "INSERT INTO Elem(Dgauche,Dgout,Lar,Lon,Zone,Nom,Idproj) VALUES('100','100','100','100','100','100','26');";
                    //requete = "INSERT INTO usager(_user,_pwd) VALUES('100','100');";
                    OleDbCommand command=new OleDbCommand(requete,connec);
    				connec.Open();            
    				Etat=(command.ExecuteNonQuery()>0);
                    OleDbCommand command2 = new OleDbCommand("SELECT @@IDENTITY", connec);
                    int Id = Convert.ToInt32(command2.ExecuteScalar());
     
                    IdEtat[Id] = Etat;
    				connec.Close();
    			}
    			catch
    			{
    				Etat=false;
    			}
     
                return IdEtat;
    		}

  4. #4
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Je vois rien de particulier non plus. Peut-être utiliser les requêtes paramétrées pour éviter les problèmes de conversion (entre autres choses).

    +1 pour le message d'erreur
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    infosam76 as tu vu le code que j'ai posté ?
    Je ne sais pas aire de requetes paramêtré, je débute ... Mais ma table est en string et j'ai essayé avec une requete de purs strings sans passer par ma classe et cela ne fonctionne pas non plus :/

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Si quelqu'un a une idée

  7. #7
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    On a posté en même temps ;-) je suis en train de regarder ton code ;-)
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  8. #8
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Tu as essayé d'exécuter la requête que tu as mis en commentaire pour voir si l'erreur est la même ?
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  9. #9
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    oui et ça revient au même.... Ca ait plusieurs haures que je me torture :/

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Cela te dérangerait il que je ténvois le projet pour voir en direct ? Je ne sais vraiment pas quoi faire

  11. #11
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    ceci dans access directement fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    INSERT INTO usager(_user,_pwd) VALUES('100','100');
    Maintenant pour essayer d'avoir un message un peu plus clair essaie ce code :

    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
     
    ...
     
    try
    			{
                    string requete = "INSERT INTO " + Table + "(" + champs + ") VALUES(\'" + proprietes + "\');";
                   // requete = "INSERT INTO Elem(Dgauche,Dgout,Lar,Lon,Zone,Nom,Idproj) VALUES('100','100','100','100','100','100','26');";
                    //requete = "INSERT INTO usager(_user,_pwd) VALUES('100','100');";
                    OleDbCommand command=new OleDbCommand(requete,connec);
    				connec.Open();            
    				Etat=(command.ExecuteNonQuery()>0);
                    OleDbCommand command2 = new OleDbCommand("SELECT @@IDENTITY", connec);
                    int Id = Convert.ToInt32(command2.ExecuteScalar());
     
                    IdEtat[Id] = Etat;
    				connec.Close();
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.message + " : " + ex.InnerException)
    			}
     
    ...
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  12. #12
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Tu peux faire une archive de ton projet + la base de données et la mettre en pièce jointe à une réponse à ce post. J'y jetterais un œil
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

  13. #13
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    l'erreur me dit : " Erreur de syntaxe dans l'expression INSERT INTO"

  14. #14
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    L'archive ait 5 Mo je ne peux pas la joindre ... pourrais tu me donner un email par MP. Je te remercie d'avance

  15. #15
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Sinon dropbox ...

  16. #16
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    L'erreur se produit aussi quand on utilise un nom de colonne qui est déjà un mot réservé à Access, dans ton cas c'est "zone", renomme cette colonne.

  17. #17
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Génial !!! Je regrette juste ne pas avoir pu m'en rendre compte plus tôt ! Les messages d'erreur manque de clarté des fois ... Merci 1000 fois Je met résolu.

  18. #18
    Membre éclairé Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Points : 735
    Points
    735
    Par défaut
    Ca arrive à tout le monde, chercher loin alors que l'erreur est devant nous, ce n'est pas évident, en plus le message d'erreur n'est pas explicite.

    Bon code.

  19. #19
    Membre à l'essai
    Inscrit en
    Janvier 2010
    Messages
    29
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 29
    Points : 15
    Points
    15
    Par défaut
    Merci à toi aussi infosam

  20. #20
    Membre expert


    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2006
    Messages
    970
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 970
    Points : 3 304
    Points
    3 304
    Par défaut
    Désolé de pas l'avoir vu de suite ;-) mais chaque SGBD ayant leur mot clé ;-) Content que ce soit résolu
    Articles sur les technologies .NET

    Une réponse vous a aidé ? utilisez le bouton

    Votre problème est résolu ? utilisez le bouton

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

Discussions similaires

  1. pd codage ASP : Pb requete insert into
    Par leclone dans le forum ASP
    Réponses: 10
    Dernier message: 19/05/2006, 18h02
  2. Probleme de requete 'Insert Into'
    Par azerty53 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/05/2006, 14h33
  3. Requete INSERT INTO
    Par cheers94wow dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/05/2006, 11h13
  4. petite aide sur une requete INSERT INTO
    Par bonneti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 14/03/2005, 15h17
  5. Erreur lors d'une requete insert into.. select
    Par Mr N. dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 04/11/2004, 17h32

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