Accueil > Forum > > > > Problème requête UPDATE.
Problème requête UPDATE.
lundi 3 juillet 2006 à 11:10:16 |
Problème requête UPDATE.

woot6768
|
Salut, J'ai un souci avec une requête, je souhaite mettre à jour une base de données via des requpetes UPDATE, mais il me génère une exception, il me dis que j'ai un nombre d'argument incorrect dans l'expression TRIM ( ). Je vous passe le code correspondant : string lineCmd = "UPDATE M9004_CONTACTSYNC SET CIVILITY= TRIM( {0} ), FULLNAME= TRIM( {1} ), FIRSTNAME= TRIM( {2} ), LASTNAME= TRIM( {3} ) WHERE CONTACTSYNID= {4} ";string req = "SELECT CIVILITY, FULLNAME, FIRSTNAME, LASTNAME, CONTACTSYNCID FROM M9004_CONTACTSYNC";lineCmd = String.Format(lineCmd, CIV, FULL, FIRST, LAST, Recordset.Fields["CONTACTSYNCID"].Value);OdbcCommand cmd = newOdbcCommand(lineCmd, connection2);cmd.ExecuteNonQuery();//C'est sur cette ligne que l'exeption est générée.
De plus, lorque j'enlève les 'TRIM()', il me dis qu'il y a une erreur dans la syntaxe 'UPDATE'. Je ne trouve pas de solution sur le net, donc est-ce que quelqu'un disposerait d'un lien ou même mieux, d'une réponse! Merci _________________________________________________________________________ Woot
|
|
lundi 3 juillet 2006 à 12:54:47 |
Re : Problème requête UPDATE.

dgouttegattat
|
Réponse acceptée !
Bonjour, As-tu essayé d'ajouter des apostrophes (') pour encadrer l'argument de TRIM, comme ceci : TRIM( '{0}' ) ?
|
|
lundi 3 juillet 2006 à 14:04:49 |
Re : Problème requête UPDATE.

woot6768
|
Salut dgouttegattat, J'ai mis ta solution en place, et cette fois ci, il m'affiche une autre exception, elle est la suivante : " Trop peu de paramètres. 1 attendu.".
Saurai-tu ce que signifie cette erreur? _________________________________________________________________________ Woot
|
|
lundi 3 juillet 2006 à 14:20:44 |
Re : Problème requête UPDATE.

dgouttegattat
|
Là, je sèche... Voyons. Si la fonction attend 1 paramètre et qu'elle en reçoit "trop peu", cela veut manifestement dire qu'elle en reçoit 0. Mais pourquoi ? Est-ce que tu peux afficher le contenu de la variable lineCmd après le String.Format(...) et me donner le résultat ? Merci.
|
|
lundi 3 juillet 2006 à 14:30:35 |
Re : Problème requête UPDATE.

woot6768
|
Juste après String.Format(), elle me renvoie ceci : "UPDATE M9004_CONTACTSYNC SET CIVILITY= TRIM( '' ), FULLNAME= TRIM( '' ), FIRSTNAME= TRIM( 'YVES' ), LASTNAME= TRIM( 'JNE' ) WHERE CONTACTSYNID= 878 " En faite je viens de comprendre! Ta solution fonctionne, le problème est que tout mes champs ne sont pas forcément remplies. Comment faire pour que cela n'affecte pas le fonctionnement de mon code? En plus il faut que je laisse les champs vide, je ne peu pas modifier cette base...
_________________________________________________________________________ Woot
|
|
lundi 3 juillet 2006 à 14:47:33 |
Re : Problème requête UPDATE.

dgouttegattat
|
Si tu veux que ton code fonctionne même avec des champs vides, je pense que le plus simple serait quelque chose comme ça :
string lineCmd = "UPDATE M9004_CONTACTSYNC SET CIVILITY='{0}', FULLNAME='{1}', FIRSTNAME='{2}', LASTNAME='{3}' WHERE CONTACTYNID={4}"; ... lineCmd = String.Format(lineCmd, CIV.Trim(), FULL.Trim(), FIRSTNAME.Trim(), LASTNAME.Trim(), Recordset.Fields["CONTACTSYNCID"].Value); Autrement dit, tu "trimmes" (je ne sais pas s'il y a un terme français pour ça...) tes chaînes de caractères dans le code C# plutôt que dans le code SQL, l'avantage étant que la méthode Trim() du type System.String() ne génère (à ma connaissance) pas d'exception lorsqu'elle est appelée sur une chaîne vide, elle renvoie simplement une chaîne vide. Normalement, cela devrait fonctionner quel que soit l'état des champs. À noter, le mot-clé dans la phrase précédente est normalement...
|
|
lundi 3 juillet 2006 à 14:56:51 |
Re : Problème requête UPDATE.

woot6768
|
Alors là, je ne comprend pas, il me remet la même erreur. C'est-à-dire "Trop peu de paramètres. 1 attendu."! Voilà si tu as une autre idée... Car là, je suis à sec lol
_________________________________________________________________________ Woot
|
|
lundi 3 juillet 2006 à 15:38:40 |
Re : Problème requête UPDATE.

dgouttegattat
|
???
C'est peut-être dû au fait que la base de données a été conçue de manière à interdire d'affecter des chaînes vides à certaines colonnes. Si tel est le cas, il faudrait affecter la valeur NULL (SQL, pas C#) au lieu d'une chaîne vide ''.
Peux-tu essayer d'exécuter une requête codée "en dur", du genre : "UPDATE M9004_CONTACTSYNC SET CIVILITY=NULL, FULLNAME=NULL, FIRSTNAME='YVES', LASTNAME='JNE' WHERE CONTACTSYNCID=878" et me dire si ça marche ?
Par ailleurs, quel système de base de données utilises-tu (SQL Server, Access, MySQL, ...) ?
|
|
lundi 3 juillet 2006 à 16:07:00 |
Re : Problème requête UPDATE.

woot6768
|
Tout d'abord, c'est une base de données Access. Ensuite, j'ai fait ce que tu m'a dis au niveau de la requête, et ça n'a pas fonctionné (toujours la même erreur!) J'ai aussi essayer d'initialiser les champs 'en dur' à NULL dans le code, mais sans succés! Et enfin, j'ai tester la chose suivante qui n'a pas fonctionner non plus : string vide = -1; ADODB. Field field1 = Recordset.Fields["CIVILITY"];if (field1.Value != DBNull.Value){ if (Convert.ToString(Recordset.Fields["CIVILITY"]).Length > 0){ CIV = Recordset.Fields[ "CIVILITY"].Value.ToString();CIV = (CleanEspaces(CIV)).Trim(); CIV = Cleanup((Recordset.Fields[ "CIVILITY"].Value).ToString(), limite_autres);CIV = EpurerNom(CIV, exclusP); } } else{ /*J'ai donc rajouter ceci pour affecter une valeur à ces champs vides mais cela n'à pas fonctionner*/CIV = vide; break;} Aurait-tu une autre proposition? Je continue à chercher en parallèle, mais je rame de plus en plus... Et puis, je suis sûr que c'est un truc tout bête! _________________________________________________________________________ Woot
|
|
lundi 3 juillet 2006 à 16:22:58 |
Re : Problème requête UPDATE.

dgouttegattat
|
Je suis désolé, mais là, je crois bien que je suis à court d'idées.
Juste une dernière, peut-être : il faudrait ouvrir la base de données sous Access et tester les différentes requêtes SQL (avec apostrophes, sans apostrophes, avec TRIM, sans TRIM, avec NULL, ...) directement dans Access. Ça fait un bail que je n'ai plus utilisé Access, donc je ne sais plus comment on fait pour entrer du code SQL directement (sans passer par les différents assistants), mais tu devrais trouver cela dans l'aide d'Access. Cela te permettrait de trouver LA bonne syntaxe SQL qui fonctionne, que tu pourrais ensuite utiliser dans ton code.
Une dernière possibilité : comme manifestement, le problème vient davantage des instructions SQL que du code C#, tu pourrais essayer de te renseigner du côté de sqlfr.com.
Voilà, bon courage ! S'il me vient une autre idée, je t'en fais part immédiatement.
|
|
Cette discussion est classée dans : string, requête, trim, update, linecmd
Répondre à ce message
Sujets en rapport avec ce message
Problème lors de l'exécution d'une requête SQL [ par vonbier ]
Salut,je débute en C# et j'ai un problème lors de l'exécution d'une requête toute simple sur SQL Server 2000.Voici mon codestring conn = "server=HECTO
envoi de requetes multiples [ par maxelpiratos ]
re bonjour c encore moi le novice :)alors : j'ai 9 textfield sur une page, je récupère leur contenu, je vérifie que c bien des integer et je les envoi
requête update access en c# [ par dinosors_evolution ]
Je suis newbi en c#mon probléme est que lorsque je fait une requête update il me donne le message suivants:"Type de données incompatible dans l'expres
dataset / bindingsource / TableAdapter Update d une valeur [ par leroitony ]
Bonjour à tous,Voila ma premiere demand d'aide ;) je vous explique mon probleme j'ai datagridview dans lequelle je charge une table d'une source de do
Linq2SQL - Un update foireux [ par yannickiwi ]
Bonjour, J'essaie de faire un update dans sql server avec linq2sql. Le code se compile, aucune erreur se passe, la mise à jour ne se fait pas. Voici
treees urgent probleme dans une fonction [ par trublue ]
salut a tous,j'ai programmé une fonction qui doit s'exécuter au moment d'un click sur un boutton mais il y a des erreurs que j'ai pas pu corriger alo
Problème de Trim() sur un Byte converti en String [ par fleothekiller ]
Bonjour ! Voilà quelques heures que je gratte sur un petit problème, mais je ne trouve malheureusement pas la solution. Je m'explique : Je récupère le
problème requête Update [ par ouss84 ]
bjr à tous j'ai une requête update : DecGlob.Req2 = " Update Fournisseur Set CodeFour = '" + dataGridViewFour[1, 1].Value + "',Libellé ='" + dataGrid
SOAP et problème de namespace dans l'envoie d'une requête. [ par skerdreux ]
Bonjour, J'ai un gros problème dans un webservice que je dois appeller via une requête SOAP qui dépend d'un autre programme dont je n'ai absoluement
Requete SQL UPdate [ par Foxnono06 ]
Bonjour à tous, Voilà, ma requête est la suivante : [code=cs]string sModifierSQL = "UPDATE [client] SET " + "`nom` = "+ "'" + Nom +"'
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|