Valeurs des paramètres dans une commande Oracle

neo557 Messages postés 34 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 30 août 2006 - 14 juin 2006 à 14:12
neo557 Messages postés 34 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 30 août 2006 - 14 juin 2006 à 16:12
Bonjour,

J'ai un problème pour faire passer une commande BD. J'ai un paramètre dans ma commande que je voudrais pouvoir affecté avant de lancer la commande. le paramètre en question c'est @ID. Le problème est que j'ai fait pas mal de tests et que je n'arrive pas à passer cette valeur par paramètre, malheuresement j'y suis obligé...(parce que j'ai énormément d'autres paraètres a passer encore...)

J'ai essayé avec que des valeurs cpdées en dur et ça marche. mais si je lance le code ci-dessous j'ai une erreur de type : "ORA-00936: missing expression"

Voici mon code :

OracleCommand

qryInsert =
new
OracleCommand();




using (OracleConnection connection = newOracleConnection

(ConnectionString))




{




qryInsert.CommandText =

"Insert Into Ma_Table("
+



"ID, "+
"



Classification_ID, "+




"Company_ID, "

+



"Firstname, "

+



"Lastname, "

+



"MailAddress, "

+



"DateFrom, "

+



"DateTo, "

+



"BookNo) values (@ID, "

+



"-1, "

+



"'10', "

+



"'FirstName', "

+



"LastName',"

+



"'MonAdresse@mail.com', "

+



"'08.06.2006', "

+



"'09.06.2006'"



;






string

s2 = "123";




OracleParameter testop = newOracleParameter("@ID", OracleDbType

.Varchar2, 3);



testop.ParameterName =

"@ID"
;


testop.Value = s2;



qryInsert.Parameters.Add(testop);

qryInsert.ExecuteNonQuery();
}

Qqun a une idée sur ce que j'ai oublié ?
j'ai également essayé ceci :

//qryInsert.Parameters["@ID"].Value = "123";


Merci d'avance

Nelson

6 réponses

TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
14 juin 2006 à 14:35
La fin de la parenthèse par exemple.

"BookNo) values (@ID, " +

"-1, " +

"'10', " +

"'FirstName', " +

"LastName'," +

"'MonAdresse@mail.com', " +

"'08.06.2006', " +

"'09.06.2006'<gras>);

::|The S@ib|:: MVP C#.NET
0
neo557 Messages postés 34 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 30 août 2006 1
14 juin 2006 à 14:46
La fin de la parenthèse y est dans mon code, je n'ai affiché que qqes valeurs dans ce post parce qu'il y en a en tout une trentaine.

Désolé mal copier/collé

Nelson
0
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
14 juin 2006 à 14:52
Y'en a une trentaine et seulement 8 entrées dans ton insert into(1..8) Values (1...30) ???

::|The S@ib|:: MVP C#.NET
0
neo557 Messages postés 34 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 30 août 2006 1
14 juin 2006 à 15:02
ok voilà le code complet :





qryInsert.CommandText =

"Insert Into GA_BookCar ("
"ID, "




+
"Classification_ID, "



+
"Company_ID, "



+
"Firstname, "



+
"Lastname, "



+
"MailAddress, "



+
"DateFrom, "



+
"DateTo, "



+
"HourFrom, "



+
"HourTo, "



+
"Notice, "



+
"Destination, "



+
"Material, "



+
"Weight, "



+
"nbPlace, "



+
"Status_ID, "



+
"NewUser, "



+
"NewDate, "



+
"ChangeUser, "



+
"ChangeDate, "



+
"Gear, "



+
"BookNo) values (@ID, "



+
"-1, "



+
"'10', "


+


"'FirstName', "

+
"LastName',"


+
"'MonAdresse@mail.com', " +



"'08.06.2006', "

+
"'09.06.2006', "



+
"'11:00', "



+
"'12:00', "



+
"'Notice', "



+
"'Destination', "



+
"'Material', "


+




"0, "

+
"2, "



+
"'1', "



+
"-1, "



+
"'11.06.2006', "



+
"-1, "



+
"'20.06.2006', "



+
"'M', "



+
"1500)";





Nelson
0

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

Posez votre question
TheSaib Messages postés 2367 Date d'inscription mardi 17 avril 2001 Statut Membre Dernière intervention 26 décembre 2007 23
14 juin 2006 à 16:02
Et si tu mets un breakpoint et que tu regarde la valeur de ta requête, et que tu la testes à la main dans oracle il te dit quoi ?

Parceque là il s'agit d'un problème de construction de ta requete.

::|The S@ib|:: MVP C#.NET
0
neo557 Messages postés 34 Date d'inscription mardi 13 janvier 2004 Statut Membre Dernière intervention 30 août 2006 1
14 juin 2006 à 16:12
Comme expliqué dans ma question si je met la valeur en dure, c'est à dire si je remplace @ID par "1234" par exemple ça marche. Mon problème c'est que je dois avoir des paramètres dans ma fonction que je peux régler après...




La commande fonctionne très bien.





Nelson
0
Rejoignez-nous