Probléme pour écrire dans une BD

cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 10:09
cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007 - 9 août 2007 à 17:16
Bonjour,

j'ai un probléme dans mon exécutable c# qui me sert a collecter les données d'une base sql server et de bases access pour les mettre dans mon DWH sous sqlserver
Je pense que les connexions marche bien par contre il me marque une erreur et veux pas copier les données. L'erreur est :
     'ht5897631' n'est pas autorisé dans ce contexte     
     seules sont autorisées ici des constantes, des
     expressions ou des variables.Les noms de  
     colonnes ne sont pas autorisé.
Pourtant ce n'est pas un nom de colonne mais bien un attribut.Cette erreur vient de ma commande :
      myCommand.CommandText = req;
      myCommand.ExecuteNonQuery();

 Merci d'avance pour vos réponses.

7 réponses

Peslami Messages postés 6 Date d'inscription mercredi 13 juin 2007 Statut Membre Dernière intervention 24 août 2007
9 août 2007 à 11:23
C'est un peu léger ce que tu nous donne comme info. Es ce que tu t'es connecté avec un les droits necessaire à ta base? Quel est ta requète SQL?
0
cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 11:29
désolé de pas avoir donné suffisament de détail j'ai pas l'habitude de poster ici.
Ben en fait j'utilise les droits qui m'ont été donné je pense que c'est en lecture et écriture.(mais je demanderai pour vérifier)
Sinon ma requéte est la suivante :
      req = "INSERT INTO EnteteFacture (Numero_Facture, Code_Agence] VALUES (" +       fact.Numero_Facture + "," + fact.Code_Agence + ");";
C'est pour insérer mes attributs clés dans mon DWH.
Aprés je refait une requete en fesant un update pour les autres attributs.
      
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 août 2007 à 11:41
hum... 
3 choses :
- il y a un ] en trop : req = "INSERT INTO EnteteFacture (Numero_Facture, Code_Agence] VALUES (" +       fact.Numero_Facture + "," + fact.Code_Agence + ");";
D'ailleurs, ce serait plutot une )

- on ne mets pas de ; à la fin de la requête
- on évite de faire des requêtes comme ceci : http://www.csharpfr.com/tutoriaux/UTILISATION-REQUETES-PARAMETREES-AVEC-ADO-NET_709.aspx

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 11:50
le ] en trop c'est que j'avais mis entre crochet ua début.
Je vais voir le lien pour refaire ma requete.
Merci pour ces informations.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 16:52
Merci pour la solution ça marche mieux now
Bon j'ai encore un probléme (désolé suis pas doué lol)
en fait j'ai mis une boucle sur ma requete pour rentré plusieurs tuples que je stocke dans une liste d'objet et ça marche bien pour le premier tuple mais dés que ça arrive au second ça me fait une erreur du type
le nom de la variable '@numfact' a déjà été déclaré.les noms de variables doivent être unique dans un lot de requetes ou une procédure.
Comment doit je faire?
Merci par avance de vos réponse.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
9 août 2007 à 17:04
il n'est pas nécessaire d'ajouter le paramètre à la collection à chaque itération... il suffit juste d'y affecter une valeur.

Sébastien FERRAND (blog)
Consultant Indépendant
[Microsoft Visual C# MVP]
0
cs_marseb Messages postés 5 Date d'inscription dimanche 14 janvier 2007 Statut Membre Dernière intervention 9 août 2007
9 août 2007 à 17:16
ah merci ok c'été un truc simple alors me su creusé le crane pour rien lol
0
Rejoignez-nous