Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Bizarre... normalement ça devrait marcher
Essaie d'ajouter une clé primaire sur la table :
(dans liste_Load, après le Fill)
Code : Sélectionner tout - Visualiser dans une fenêtre à part dataset_commande.Tables["commande"].PrimaryKey = new DataColumn[] { dataset_commande.Tables["commande"].Columns["co_ref"] };
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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
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
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Ou est le MysqlCommandBuilder ??
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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
Un âne se croit savant parce qu'on le charge de livres (proverbe américain)
N'oubliez pas de avant de
Pas de question techniques par MP, c'est contre la philosophie du forum
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
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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 "@"
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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.
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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:
Essaye la commande avec executenonquery
Le resultat quel qu'il soit permettra de mieux cibler le problème !
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
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
« Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
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