si tu ne dis pas de quelle erreur il s'agit, je vois pas ce qu'on peut faire pour toi :roll:
EDIT: ok je suis à la bourre...
Version imprimable
même erreur !
Code:
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 public MySqlConnection maconnexion; public DataSet dataset_commande = new DataSet(); private MySqlDataAdapter adapter_commande; public MySqlCommand cmd; private void liste_Load(object sender, EventArgs e) { timer_reload.Enabled = true; // Connexion à la base de données string connexion = "Server=192.168.0.39;Port=3306;Database=db_commande;Uid=pseudo;Pwd=mdp;"; maconnexion = new MySqlConnection(connexion); maconnexion.Open(); // Ouverture adapter_commande = new MySqlDataAdapter("SELECT co_ref, co_fich, co_dat, co_qte, co_del, co_com, co_sta, co_fac, co_imp, for_nom, gra_nom, pro_nom FROM commande,forma,grammage,produit WHERE co_for=for_id AND co_gra=gra_id AND co_pro=pro_id ORDER BY co_dat DESC", maconnexion); cmd = maconnexion.CreateCommand(); cmd.CommandText = "UPDATE commande SET co_sta=@co_sta WHERE co_ref=@co_ref"; cmd.Parameters.Add("@co_sta", MySqlDbType.Int32, 0, "co_sta"); cmd.Parameters.Add("@co_ref", MySqlDbType.String, 0, "co_ref"); adapter_commande.UpdateCommand = cmd; adapter_commande.Fill(dataset_commande, "commande"); dataset_commande.Tables["commande"].PrimaryKey = new DataColumn[] { dataset_commande.Tables["commande"].Columns["co_ref"] }; DataView dataView_attente = new DataView(dataset_commande.Tables["commande"], "co_sta = 0", null, DataViewRowState.CurrentRows); dataGridView_attente.DataSource = dataView_attente; DataView dataView_termine = new DataView(dataset_commande.Tables["commande"], "co_sta = 1", null, DataViewRowState.CurrentRows); dataGridView_termine.DataSource = dataView_termine; } private void dataGridView_attente_CellClick(object sender, DataGridViewCellEventArgs e) { if (e.RowIndex >= 0 && e.ColumnIndex == details.Index) { adapter_commande = new MySqlDataAdapter("SELECT co_ref, co_fich, co_dat, co_qte, co_del, co_com, co_fac, co_imp, for_nom, gra_nom, pro_nom, co_sta FROM commande,forma,grammage,produit WHERE co_for=for_id AND co_gra=gra_id AND co_pro=pro_id ORDER BY co_dat ASC", maconnexion); adapter_commande.Fill(dataset_commande, "commande"); // obtenir la DataRow correspondant à la ligne courante du DataGridView DataRowView drv = dataGridView_attente.CurrentRow.DataBoundItem as DataRowView; drv.Row["co_sta"] = 1; adapter_commande.Update(dataset_commande, "commande"); MessageBox.Show("Commande terminée !", "Validation", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
arf... là je comprends pas trop :?
Je regarderai ça ce soir, pas trop le temps pour l'instant
En attendant tu peux toujours essayer de faire la mise à jour directement avec un MySqlCommand, sans passer par un DataAdapter... ça te fera un bon exercice ;)
Ou est le MysqlCommandBuilder ??
Citation:
Envoyé par tomlev
s'il n'y a plus de problèmes dans le code, regardes dans la base de données...
c'est à dire récupère toute ta commande update et écris la dans un analyseur de requete mysql et execute si ça fonctionne bien c'est que c'est le code qui a toujours un problème sinon c'est ta requete ou ta base de données
aucun problème sur mon SGBD MySql
Effectivement je vois pas bien a premiere vue mais ce que je ferais certainement c'est
1- Essayer la commande en ExecuteNonQuery
2- Passer avec le watcher pour verifier le contenu de la commande
3- Adapter la syntaxe obsolete de parameters avec la methode AddWithValue
Bonne recherche
AddWithValue
Oui oui tu a raison c'est moi qui a pas bien regardé .
Mais je me demande si c'est pas "?" qu'il faut employer plutot que "@"
Avant de l'executer, il ne l'analyse peut etre pas mais il faut bien interpreter les parametres ?
Et si la syntaxe permettant l'interpretation n'est pas valide, la commande ne sera pas valide non plus !
Mais bon c'est juste une supposition a vérifier.
merci de vous intéressez à mon problème, j'essaie de comprendre tout ce qui vous me proposez.
déjà j'ai remplacè le "@" par "?" (aucun changement)
de plus j'ai belle est bien vérifié mon SGBD dans l'analyseur de requête et mon update marche nikel, voir également un insert etc
Pour ce qui est de la commande en ExecuteNonQuery (pas encore essayé)
voila un aperçu du message d'erreur, avec un détail supplémentaire le titre:
http://ups.imagup.com/02/1235572636_erreur.jpg
Essaye la commande avec executenonquery
Le resultat quel qu'il soit permettra de mieux cibler le problème !
je veux bien lol je cherche comment faire...
Je commence a me demander si le where peut marcher dans ce type de requete parametrée via la methode update ? !
J'ai le sentiment qu'il faut obligatoirement passer par un Primary Key et faire un simple set a=b