elendila, dis nous au moins tes erreurs et a quelle ligne
le truc c'est que si je met:
(c'est bien ça que tu veux dire??)
Code : Sélectionner tout - Visualiser dans une fenêtre à part ObjCommand.Parameters.Add("@password", OleDbType.VarChar, tb_pass.Text.ToUpper());
J'ai une erreur du type:
Pour mon erreur principale c'est toujours la même depuis le début du post, je t'éclair:The best overloaded method match for 'System.Data.OleDb.OleDbParameterCollection.Add(string, System.Data.OleDb.OleDbType, int)' has some invalid arguments
Sur la ligne:System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction INSERT INTO.
Voilà voilàObjCommand.ExecuteNonQuery();
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ObjCommand.Parameters.Add("@password", OleDbType.VarChar); ObjCommand.Parameters["@password"].Value=tb_pass.Text.ToUpper();
arf j'y ai cru mais non... toujours la même erreur...
Voila mes enregistrements à moi :
Adapte la avec tes champs. [/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
24
25
26
27
28
29
30
31
32
33
34
35 public static string Enregistrement(string id, string titre, string id_categorie, string description, string avec_ss_ss_cat) { string sql; if (id=="new") { sql="INSERT INTO ss_categorie (titre,id_categorie,description,avec_ss_ss_cat) VALUES (@titre,@id_categorie,@description,@avec_ss_ss_cat)"; } else { sql="UPDATE ss_categorie SET titre=@titre,id_categorie=@id_categorie,description=@description,avec_ss_ss_cat=@avec_ss_ss_cat WHERE id=@id"; } OleDbConnection OleDbConnect = new OleDbConnection(connStr); OleDbCommand Commande = new OleDbCommand(sql, OleDbConnect); Commande.Parameters.Add(new OleDbParameter("@titre",titre)); Commande.Parameters.Add(new OleDbParameter("@id_categorie",id_categorie)); Commande.Parameters.Add(new OleDbParameter("@description",description)); Commande.Parameters.Add(new OleDbParameter("@avec_ss_ss_cat",avec_ss_ss_cat)); Commande.Parameters.Add(new OleDbParameter("@id",id)); OleDbConnect.Open(); try { Commande.ExecuteNonQuery(); return("La base de données a bien été mise à jour."); } catch { return("Les données n'ont pas été enregistrées. Veuillez renouveler ultérieurement l'opération."); } finally { OleDbConnect.Close(); } }
Vive Visual Studio.net !!!
Bon ben ça non plus ça ne marche pas...
Voilà mon code:
Et j'ai toujours la même erreur:
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 string strCommand = "INSERT INTO person(connecte, nom, prenom, login, password, groupe) Values(@connecte, @nom, @prenom, @login, @password, @groupe)"; OleDbCommand ObjCommand = new OleDbCommand (strCommand, ObjConnect); ObjCommand.CommandType = CommandType.Text; ObjCommand.Parameters.Clear(); ObjCommand.Parameters.Add(new OleDbParameter ("@connecte",OleDbType.Integer)); ObjCommand.Parameters["@connecte"].Value = 1; ObjCommand.Parameters.Add(new OleDbParameter("@nom",OleDbType.VarChar)); ObjCommand.Parameters["@nom"].Value = tb_nom.Text.ToUpper(); ObjCommand.Parameters.Add(new OleDbParameter("@prenom",OleDbType.VarChar)); ObjCommand.Parameters["@prenom"].Value = tb_prenom.Text.ToUpper(); ObjCommand.Parameters.Add(new OleDbParameter("@login",OleDbType.VarChar)); ObjCommand.Parameters["@login"].Value = tb_login.Text.ToUpper(); ObjCommand.Parameters.Add(new OleDbParameter("@password",OleDbType.VarChar)); ObjCommand.Parameters["@password"].Value = tb_pass.Text.ToUpper(); ObjCommand.Parameters.Add(new OleDbParameter("@groupe",OleDbType.VarChar)); ObjCommand.Parameters["@groupe"].Value = ddl_groupe.SelectedValue; ObjCommand.ExecuteNonQuery();
Sur la ligne:System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction INSERT INTO.
Code : Sélectionner tout - Visualiser dans une fenêtre à part ObjCommand.ExecuteNonQuery();
Rajoute .Replace("'","''"); a l'affectation de chaque chaine de caractère.
Comment ça un .Replace? Je vois pas ou il faut le mettre
J'ai également écrit un code de modification de base avec le code suivant:
et j'ai toujours un erreur sur la requeête mais cette fois un peu différente:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom"; OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect); ObjCommand.Parameters.Add(new OleDbParameter("@prenom", tb_prenom.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@login", tb_login.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@password", tb_pass.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@groupe", ddl_groupe.SelectedValue)); ObjCommand.ExecuteNonQuery();
alors que ma requête commence bien par un UPDATE donc je sais pas, j'ai un gros soucis mais je vois vraiment d'ou ça peut venir...System.Data.OleDb.OleDbException: Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus.
arf je retire, je m'étais trompé dans les paramètres, en fait j'ai exactement la même erreur mais avec le UPDATE cette fois:
Voilà, c'est pas mieux...
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction UPDATE
Ce ne sont que des erreurs de syntaxe SQL.
Tu fais :
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 try { string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom"; OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect); ObjCommand.Parameters.Add(new OleDbParameter("@prenom", tb_prenom.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@login", tb_login.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@password", tb_pass.Text.ToUpper())); ObjCommand.Parameters.Add(new OleDbParameter("@groupe", ddl_groupe.SelectedValue)); Response.Write("Requete : "+ObjCommand.CommandText+"<br/>"); foreach (OleDbParameter param in ObjCommand.Parameters) Response.Write(param.Name+" : "+param.Value+"<br/>"); ObjCommand.ExecuteNonQuery(); }//try catch (Exception ex) { Response.Write("Erreur : "+ex.Message); }//catch
personne essaye mon truc.. car ça marche très bien.
Vive Visual Studio.net !!!
SiSi j'ai essayé ton code Lespalom et ça marche pas. Regarde mes post j'ai bien changé pour faire comme toi et j'ai tjs et encore cette maudite erreur....
Pour ce qui est de ton code d'essaye BiMouXeTTe je l'ai testé, il n'y a que le catch qui ne passe pas:
C'est un paramètre que je dois initialiser ou??The type or namespace name 'ex' could not be found (are you missing a using directive or an assembly reference?)
Sinon j'ai essayé sans et je rentre bien dans la boucle foreach mais 1 seule fois, pour le nom. Par contre ça me l'affiche bien.
Voilà l'affichage:
et ça sort (c'est donc sensé passer dans le catch)Requete : UPDATE person SET prenom = '@prenom', login = '@login', password = '@password' WHERE nom = '@nom'
@prenom : BRUNO
Voilà voilà, en tout cas merci de votre aide parce que là j'avoue que je n'en voit plus la fin!
t'as bien ajouté System.Data.OleDb ???
Vive Visual Studio.net !!!
Tu as bien mis Exception devant ex ?
Je suppose que tous tes champs sont des VarChar sinon change le type.
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 try { string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom"; OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect); ObjCommand.Parameters.Add(new OleDbParameter("@prenom", OleDbType.VarChar)); ObjCommand.Parameters.Add(new OleDbParameter("@login", OleDbType.VarChar)); ObjCommand.Parameters.Add(new OleDbParameter("@password", OleDbType.VarChar)); ObjCommand.Parameters.Add(new OleDbParameter("@groupe", OleDbType.VarChar)); Response.Write("Requete : "+ObjCommand.CommandText+"<br/>"); foreach (OleDbParameter param in ObjCommand.Parameters) Response.Write(param.Name+" : "+param.Value+"<br/>"); ObjCommand.Parameters["@prenom"].Value=tb_prenom.Text.ToUpper(); ObjCommand.Parameters["@login"].Value=tb_login.Text.ToUpper(); ObjCommand.Parameters["@password"].Value=tb_pass.Text.ToUpper(); ObjCommand.Parameters["@groupe"].Value=ddl_groupe.SelectedValue; ObjCommand.ExecuteNonQuery(); }//try catch (Exception ex) { Response.Write("Erreur : "+ex.Message); }//catch
Envoi moi ton projet par e-mail. Je vais essayer de regarder.
Vive Visual Studio.net !!!
A oui ça marche mieux de suite mais j'ai toujours la même erreur:
J'ai pas ton @ mail Lespalom et si je t'envoye un mail via le forum je ne peux pas joindre mes pages donc si tu peux me la filer... Merci beaucoup en tout cas!! Par contre je ne pourrais pas te passer la table correspondante vu que je boss dans une boite... :SErreur : Erreur de syntaxe dans l'instruction UPDATE.
voilà
Salut,
contact@lespalombes.com.
Envoi moi une base de données avec la même structure de la table concernée, mais sans les données dedans .
Vive Visual Studio.net !!!
j'ai repris le code avec les @ et franchement ca ne fonctionne pas. celui avec les ? lui oui. tu as essayé cette solution finalement?
oui j'ai essayé et ça ne marchait pas non plus
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager