Résolu Datagridwiew vers base de données c#

Solutions (39)
Tags :
  • table
  • Logiciels
  • Visual studio
  • Programmation
, Maître Yoda |
bonjours a tous !
je dois faire un logiciel de gestion de stock en c# sous visual studio 2008
pour faire au plus simple j'ai mis dans ma form un datagridview et un bouton.
j'ai également une base de données mySql.
j'arrive a affiché se que contient ma table mais je n'arrive pas faire des insert ou delete.
j'ai beau cherche dans google je ne trouve rien ou les sujet ne sont pas aboutis.

par la même occasion quelqu'un c'est ou je peut trouvé une table constructeur de pièces automobile? ( référence , désignation ....)

voila un bon moment que je me penche sur les requêtes via un datagridview.
merci d'avance

cordialement pipin-link
Contenus similaires
Meilleure solution
partage
, Modérateur |
Salut,

Utilises ADO.Net pour faire tes requêtes.

Regardes au niveau des ADO.Net Data Adapters (class DbDataAdapter, pour MySQL je crois que ça s'appelle MySqlDataAdapter), qui va te générer tes requêtes automatiquement.
Tu fais du data binding the ton datagridview, et ça va être automatique pour les insert/update/delete.
  • Commenter cette solution |
Score
1
òh
òi
, Modérateur |
No no, pas de ta database, de ta "DataTable" :D 

Quand tu exécutes MyAdapter.Update(this.ds, "stock" );, il met à jour les données en fonction du DataSet nommé this.ds, ce DataSet contient des DataTable (ou au moins une).
C'est du code C# qu'il me faut, au moment où tu remplis ce DataSet avec une DataTable ;) 
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Si le Insert marchait déjà, tu n'as pas besoin de refaire le InsertCommand, normalement si tu ne définies que le SelectCommand et le UpdateCommand, il génère automatiquement le InsertCommand et le DeleteCommand.

Mais content qu'on en soit venu enfin à bout :) 
Même si bon, c'est quand même bizarre pour cette p***** de UpdateCommand :D 
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
et voila pour la suppression


  1. if (dataGridView1.SelectedRows.Count > 0)
  2. {
  3.  
  4. dataGridView1.Rows.Remove(dataGridView1.SelectedRows[0]);
  5. builder.DataAdapter = MyAdapter;
  6.  
  7. MyAdapter.Update(ds);
  8.  
  9.  
  10.  
  11. dataGridView1.DataSource = ds;
  12. MessageBox.Show("L'éléments sélectionnés a été supprimé avec succès");
  13. }
  14. else
  15. {
  16. MessageBox.Show("Vous devez sélectionner une ligne entière afin de le supprimer.");
  17. }
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
c'est bon j'ai résolu mon problème les insert et update fonctionne :bounce:  :bounce:  :bounce:  :bounce:  :bounce:  :bounce: 
merci a toi omar d'avoir etait patient

  1. try
  2. {
  3.  
  4. MySqlDataAdapter MyAdapter = new MySqlDataAdapter("SELECT * FROM stock", Connection);
  5. MyAdapter.UpdateCommand = new MySqlCommand("UPDATE stock set (NomPiece, DesignationPiece, PrixHT, PrixTTC, QuantiteStock, QuantiteAlerte) where (?NomPiece, ?DesignationPiece, ?PrixHT, ?PrixTTC, ?QuantiteStock, ?QuantiteAlerte");
  6. MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO stock (NomPiece, DesignationPiece, PrixHT, PrixTTC, QuantiteStock, QuantiteAlerte) Value (?NomPiece, ?DesignationPiece, ?PrixHT, ?PrixTTC, ?QuantiteStock, ?QuantiteAlerte");
  7.  
  8.  
  9.  
  10.  
  11. MyAdapter.InsertCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 250, "NomPiece");
  12. MyAdapter.InsertCommand.Parameters.Add("?DesignationPiece", MySqlDbType.Text, 0, "DesignationPiece");
  13. MyAdapter.InsertCommand.Parameters.Add("?PrixHT",MySqlDbType.Float, 0, "PrixHT");
  14. MyAdapter.InsertCommand.Parameters.Add("?PrixTTC",MySqlDbType.Float, 0, "PrixTTC");
  15. MyAdapter.InsertCommand.Parameters.Add("?QuantiteStock",MySqlDbType.Int32, 250, "QuantiteStock");
  16. MyAdapter.InsertCommand.Parameters.Add("?QuantiteAlerte",MySqlDbType.Int32, 250, "QuantiteAlerte");
  17.  
  18. MyAdapter.UpdateCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 45, "NomPiece");
  19. MyAdapter.UpdateCommand.Parameters.Add("?DesignationPiece", MySqlDbType.Text, 0, "DesignationPiece");
  20. MyAdapter.UpdateCommand.Parameters.Add("?PrixHT", MySqlDbType.Float, 0, "PrixHT");
  21. MyAdapter.UpdateCommand.Parameters.Add("?PrixTTC", MySqlDbType.Float, 0, "PrixTTC");
  22. MyAdapter.UpdateCommand.Parameters.Add("?QuantiteStock", MySqlDbType.Int32, 250, "QuantiteStock");
  23. MyAdapter.UpdateCommand.Parameters.Add("?QuantiteAlerte", MySqlDbType.Int32, 250, "QuantiteAlerte");
  24.  
  25.  
  26. MyAdapter = new MySqlDataAdapter("SELECT * FROM Stock", Connection);
  27. builder = new MySqlCommandBuilder(MyAdapter);
  28.  
  29.  
  30. builder.RefreshSchema();
  31. MyAdapter.Fill(ds, "Stock");
  32.  
  33. DataRow row = ds.Tables[0].NewRow();
  34.  
  35. builder.DataAdapter = MyAdapter;
  36.  
  37. MyAdapter.Update(ds);
  38. Connection.Close();
  39.  
  40. }
  41. catch (MySqlException Ex)
  42. {
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Alors, avec ce code ça devrait être bon :
  1. MySqlDataAdapter MyAdapter = new MySqlDataAdapter("SELECT * FROM stock", Connection);
  2. MyAdapter.UpdateCommand = Connection.CreateCommand();
  3. MyAdapter.UpdateCommand.CommandText = "UPDATE `garage`.`stock` SET `NomPiece` = @nomPiece, `DesignationPiece` = @designationPiece, `PrixHT` = @prixHT, `PrixTTC` = @prixTTC, `QuantiteStock` = @quantiteStock, `QuantiteAlerte` = @quantiteAlerte WHERE `idPiece` = @idPiece";
  4. MyAdapter.UpdateCommand.Parameters.Add("@nomPiece", MySqlDbType.VarString, 45);
  5. MyAdapter.UpdateCommand.Parameters.Add("@designationPiece", MySqlDbType.Text);
  6. MyAdapter.UpdateCommand.Parameters.Add("@prixHT", MySqlDbType.Float);
  7. MyAdapter.UpdateCommand.Parameters.Add("@prixTTC", MySqlDbType.Float);
  8. MyAdapter.UpdateCommand.Parameters.Add("@quantiteStock", MySqlDbType.Int32);
  9. MyAdapter.UpdateCommand.Parameters.Add("@quantiteAlerte", MySqlDbType.Int32);
  10. MyAdapter.UpdateCommand.Parameters.Add("@idPiece", MySqlDbType.Int32);
  11.  
  12. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  13. builder.RefreshSchema();
  14. ds.Tables.Remove(ds.Tables["table"]);
  15. MyAdapter.Fill(ds);
  16. // ton code pour ajouter / modifier / supprimer
  17. MyAdapter.Update(ds);
  18. Connection.Close();

  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
J'ai pas l'air de pouvoir supprimer une meilleure réponse...

Je vais manger là, quand je reviens je te donne le code pour modifier la requête UPDATE.
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
merci !
si quelqu'un a réussi a insert/delete/update des éléments via un datagridview dans une base de donnée mysql pourrai t'il m'envoyé le code ?
Omar tu peut enlevé que ce poste est résolu? les gens viendrons plus le voir ^^
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Désolé pour le retard, je ne suis passé que rapidement hier, je n'ai pas eu le temps de me re-pencher sur ton soucis.
Mais là, je ne vois plus trop quoi te dire... C'est super bizarre la requête d'UPDATE qu'il te génère.
Parce que si on va sur le doc officielle de MySQL:
http://dev.mysql.com/doc/refman/5.0/es/connector-net-ex...

Ils utilisent le même code que toi.


Sinon, il doit y avoir la solution de générer soi-même la requête d'Update en laissant la requête d'Insert et de Delete telles quelles si elles fonctionnent.
Pour ça, il suffit de spécifier la requête d'Update avant de faire le Fill.
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
up !
j'avance plus :( 
j'ai besoin d'un gros coups de pouce s'il vous plait !
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
oui biensur ! :( 

j'ai mis sa pour que je puisse faire copier coller


textBox1.Text=builder.GetUpdateCommand().CommandText;
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
C'est quoi ce bordel que le MySqlCommandBuilder te génère :/ 

ta colonne idPiece est bien une PRIMARY KEY ?
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
UPDATE `garage`.`stock` SET `NomPiece` = @p1, `DesignationPiece` = @p2, `PrixHT` = @p3, `PrixTTC` = @p4, `QuantiteStock` = @p5, `QuantiteAlerte` = @p6 WHERE ((`idPiece` = @p7) AND ((@p8 = 1 AND `NomPiece` IS NULL) OR (`NomPiece` = @p9)) AND ((@p10 = 1 AND `PrixHT` IS NULL) OR (`PrixHT` = @p11)) AND ((@p12 = 1 AND `PrixTTC` IS NULL) OR (`PrixTTC` = @p13)) AND ((@p14 = 1 AND `QuantiteStock` IS NULL) OR (`QuantiteStock` = @p15)) AND ((@p16 = 1 AND `QuantiteAlerte` IS NULL) OR (`QuantiteAlerte` = @p17)))
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Tu n'as rien à construire, je te demande juste de me donner le résultat de cette commande.
Tu fais un Console.WriteLine ou un MessageBox.Show pour afficher le résultat et me le donner ;) 
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
il se construit comment?
je trouve pas grand chose sur google qui puisque maidé !
c'est a mettre a la place de sa ?

  1. row["NomPiece"] = "tata";
  2. row["DesignationPiece"] = "tata586fg9";
  3. row["PrixHT"] = "24";
  4. row["PrixTTC"] = "30";
  5. row["QuantiteStock"] = "20";
  6. row["QuantiteAlerte"] = "5";
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Affiche le résultat de
  1. builder.GetUpdateCommand().CommandText
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
  1. MySqlDataAdapter MyAdapter = new MySqlDataAdapter("SELECT * FROM stock", Connection);
  2.  
  3. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  4.  
  5. builder.RefreshSchema();
  6. ds.Tables.Remove(ds.Tables["table"]);
  7. MyAdapter.Fill(ds);
  8.  
  9. DataRow row = ds.Tables[0].NewRow();
  10.  
  11.  
  12. row["NomPiece"] = "tata";
  13. row["DesignationPiece"] = "tata586fg9";
  14. row["PrixHT"] = "24";
  15. row["PrixTTC"] = "30";
  16. row["QuantiteStock"] = "20";
  17. row["QuantiteAlerte"] = "5";
  18.  
  19. ds.Tables[0].Rows.Add(row);
  20. MyAdapter.Update(ds);
  21. Connection.Close();


ce code fonctionne :) 
mais comment prendre en conte les valeurs introduites dans le datagrid?
avec ce code il me créer une nouvelle ligne mais moi je voudrais modifier des lignes
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
oui mais en faisant ?Nompiece je pensé récupérer la valeur du champs!

si je rentre les information en brut comme ceci (sa me permet de testé si le code fonction ) mais j'ai l'erreur la

  1. MyAdapter.Fill(ds,"table");
  2.  
  3. DataRow row = ds.Tables["table"].Rows[0];
  4. row["NomPiece"] = "titi";
  5.  
  6.  
  7. MyAdapter.Update(ds,"table");


Erreur de syntaxe près de '[garage].[stock] SET [NomPiece] = 'titi' WHERE (([idPiece] = 1) AND ([NomPiece] ' à la ligne 1
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Pourquoi tu mets la valeur de row["NomPiece"] à un paramètre ?
Il faut que tu mettes la nouvelle valeur de la case.
Imaginons que la valeur actuelle c'est "toto", tu mets:
row["NomPiece"] = "tata";

Et quand tu fais le Update, ça devrait le changer de toto à tata dans la base de données.


Edit:
Parce que si tu fais rien entre Fill et Update, il ne va rien se passer.
Fill permet de récupérer les données de la base de données et de les stocker dans un dataset.
Update permet de prendre les données qui ont été modifiées dans le dataset, et de les réinjecter dans la base de données.
Donc, un Fill suivi d'un Update ne donnera rien.
Il faut faire des modifications sur les données, comme tu as fait là sur le NomPiece
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
dans quelle genre?
c'est pas expliqué sur le site
et pour les "table" bizarement il aime pas quand je met stock :??: 
j'ai bien essayé sa mais il me dit

"La référence d'objet n'est pas définie à une instance d'un objet"

  1. MyAdapter.SelectCommand.CommandText = "SELECT * FROM stock";
  2. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  3. builder.QuotePrefix = "[";
  4. builder.QuoteSuffix = "]";
  5.  
  6. builder.RefreshSchema();
  7. ds.Tables.Remove(ds.Tables["table"]);
  8. MyAdapter.Fill(ds,"table");
  9.  
  10. MyAdapter.UpdateCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 45, "NomPiece");
  11. MyAdapter.UpdateCommand.Parameters.Add("?DesignationPiece", MySqlDbType.Text, 0, "DesignationPiece");
  12. MyAdapter.UpdateCommand.Parameters.Add("?PrixHT", MySqlDbType.Float, 0, "PrixHT");
  13. MyAdapter.UpdateCommand.Parameters.Add("?PrixTTC", MySqlDbType.Float, 0, "PrixTTC");
  14. MyAdapter.UpdateCommand.Parameters.Add("?QuantiteStock", MySqlDbType.Int32, 250, "QuantiteStock");
  15. MyAdapter.UpdateCommand.Parameters.Add("?QuantiteAlerte", MySqlDbType.Int32, 250, "QuantiteAlerte");
  16.  
  17. MyAdapter.Update(ds,"table");
  18. Connection.Close();



après j'ai testé sa
mais encor une erreur :fou: 
Erreur de syntaxe près de '[garage].[stock] SET [NomPiece] = '?NomPiece' WHERE (([idPiece] = 1) AND ([NomPi' à la ligne 1

  1. MyAdapter.SelectCommand.CommandText = "SELECT * FROM stock";
  2. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  3. builder.QuotePrefix = "[";
  4. builder.QuoteSuffix = "]";
  5.  
  6. builder.RefreshSchema();
  7. ds.Tables.Remove(ds.Tables["table"]);
  8. MyAdapter.Fill(ds,"table");
  9.  
  10. DataRow row = ds.Tables["table"].Rows[0];
  11. row["NomPiece"] = "?NomPiece";
  12.  
  13.  
  14. MyAdapter.Update(ds,"table");
  15. Connection.Close();
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Dans le 2ème code, tu fais quelque chose entre le Fill et le Update au moins ? :) 

Et puis met des "stock" plutôt que "table" dans le 2ème code aussi.
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
oui j'ai essayé ces 2 manières et il me dise que Table ne peut pas être null

  1. MyAdapter.UpdateCommand = new MySqlCommand("UPDATE stock set (NomPiece, DesignationPiece, PrixHT, PrixTTC, QuantiteStock, QuantiteAlerte) where (?NomPiece, ?DesignationPiece, ?PrixHT, ?PrixTTC, ?QuantiteStock, ?QuantiteAlerte)", Connection);
  2.  
  3. //MyAdapter.SelectCommand.CommandText = "SELECT * FROM stock";
  4. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  5. builder.QuotePrefix = "[";
  6. builder.QuoteSuffix = "]";
  7.  
  8. builder.RefreshSchema();
  9. ds.Tables.Remove(ds.Tables["stock"]);
  10. MyAdapter.Fill(ds,"stock");
  11.  
  12.  
  13. MyAdapter.Update(ds,"stock");
  14. Connection.Close();


et en mettant ce code je n'est plus d'erreur mais il m'enregistre rien
  1. MyAdapter.SelectCommand.CommandText = "SELECT * FROM stock";
  2. MySqlCommandBuilder builder = new MySqlCommandBuilder(MyAdapter);
  3. builder.QuotePrefix = "[";
  4. builder.QuoteSuffix = "]";
  5.  
  6. builder.RefreshSchema();
  7. ds.Tables.Remove(ds.Tables["table"]);
  8. MyAdapter.Fill(ds,"table");
  9.  
  10.  
  11. MyAdapter.Update(ds,"table");
  12. Connection.Close();
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Tu as bien créé un DbCommandBuilder ?
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
sans mon update j'ai l'erreur la

Update requiert un UpdateCommand valide lors du passage de la collection DataRow avec des lignes modifiées.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Normalement, il me semble que tu n'as pas besoin de te faire chier à écrire les requêtes d'UPDATE.
Avec ton DbDataAdapter, quand tu lui définis sa variable SelectCommand et que tu créé un DbCommandBuilder, il se débrouille pour générer les UpdateCommand, InsertCommand, DeleteCommand.

Voir ici : http://msdn.microsoft.com/en-us/library/tf579hcz%28VS.8...
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
j'ai etait un peut vite les Update ne fonctionne toujours pas ! =/
Avec ce code je modifie a toute les lignes la case nompiece

  1. {
  2. MyAdapter.UpdateCommand = new MySqlCommand("UPDATE stock set NomPiece = ?NomPiece", Connection);
  3. MyAdapter.UpdateCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 250, "NomPiece");
  4. //MyAdapter.UpdateCommand.Parameters.Add("?DesignationPiece", MySqlDbType.Text, 0, "DesignationPiece");
  5. //MyAdapter.UpdateCommand.Parameters.Add("?PrixHT", MySqlDbType.Float, 0, "PrixHT");
  6. //MyAdapter.UpdateCommand.Parameters.Add("?PrixTTC", MySqlDbType.Float, 0, "PrixTTC");
  7. //MyAdapter.UpdateCommand.Parameters.Add("?QuantiteStock", MySqlDbType.Int32, 250, "QuantiteStock");
  8. //MyAdapter.UpdateCommand.Parameters.Add("?QuantiteAlerte", MySqlDbType.Int32, 250, "QuantiteAlerte");
  9.  
  10.  
  11. MyAdapter.Update(this.ds);
  12. Connection.Close();
  13. }
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
j'ai résolut mon problème merci a toi omar
pour ce qui veule voila le code Insert


  1. MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO stock (NomPiece, DesignationPiece, PrixHT, PrixTTC, QuantiteStock, QuantiteAlerte) Value (?NomPiece, ?DesignationPiece, ?PrixHT, ?PrixTTC, ?QuantiteStock, ?QuantiteAlerte)", Connection);
  2. MyAdapter.InsertCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 250, "NomPiece");
  3. MyAdapter.InsertCommand.Parameters.Add("?DesignationPiece", MySqlDbType.Text, 0, "DesignationPiece");
  4. MyAdapter.InsertCommand.Parameters.Add("?PrixHT",MySqlDbType.Float, 0, "PrixHT");
  5. MyAdapter.InsertCommand.Parameters.Add("?PrixTTC",MySqlDbType.Float, 0, "PrixTTC");
  6. MyAdapter.InsertCommand.Parameters.Add("?QuantiteStock",MySqlDbType.Int32, 250, "QuantiteStock");
  7. MyAdapter.InsertCommand.Parameters.Add("?QuantiteAlerte",MySqlDbType.Int32, 250, "QuantiteAlerte");
  8.  
  9. MyAdapter.Update(this.ds);
  10. Connection.Close();


  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
merci sa a avancer !
( désolé mais je suis sur le Csharp depuis peut. j'ai du l'apprendre pour mon projet )

j'ai l'errreur la maintenant

Violation de l'accès concurrentiel : UpdateCommand a affecté 0 des enregistrements 1 attendus.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
C'est que tu n'as pas de table qui s'appelle stock...
Essaie de mettre plutôt:
MyAdapter.Update(this.ds, "table" );
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
en faisant un try catch pour table[0]un messagebox s'ouvre et il est écrit table
pour le table["stock"] il met une erreur. La référence d'objet n'est pas définie à une instance d'un objet.
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
euh tu dois pas mettre à où il faut.
Fais juste un
MessageBox.Show(this.ds.Tables["stock"].TableName);
ou un
Console.WriteLine(this.ds.Tables["stock"].TableName);

En fonction de si tu as une application winforms ou console.

Edit: et même chose pour this.ds.Tables[0].TableName
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
Erreur 1 La méthode surchargée correspondant le mieux à 'System.Data.Common.DbDataAdapter.Update(System.Data.DataRow[])' possède des arguments non valides

Erreur 2 Argument '1' : impossible de convertir de 'string' en 'System.Data.DataRow[]'

voila les 2 erreurs qu'il me met

c'est la même pour les 2 méthodes
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Regarde si this.ds.Tables["stock"].TableName retourne quelque chose (enfin, ça risque de te mettre une exception).

Sinon, fais regarde ce que te retourne this.ds.Tables[0].TableName
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
mon dataset est relié directement a ma base mysql !visual a tous fait donc j'y est mis aucun code : =/
j'y est juste sélectionné que ma table stock
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
a Oops xD
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
...
  • Commenter cette réponse |
Score
0
òh
òi
, Modérateur |
Salut,

Il me faut le code de ta datatable, parce que le problème n'est pas dans l'adapter, mais dans la DataTable, il ne trouve pas de table nommée "stock".
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
je n'arrive pas a le mettre en place !
peut tu m'aidé s'il te plait

comme code j'ai sa

  1. MyAdapter.DeleteCommand = new MySql.Data.MySqlClient.MySqlCommand("DELETE from stock WHERE idPiece = ?id", Connection);
  2. MyAdapter.DeleteCommand.Parameters.Add("?id", MySql.Data.MySqlClient.MySqlDbType.String, 0, "id");
  3. MyAdapter.DeleteCommand.Parameters["?id"].SourceVersion = DataRowVersion.Original;
  4.  
  5.  
  6. MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO stock (NomPiece) Value (?NomPiece)", Connection);
  7. MyAdapter.InsertCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 45, "NomPiece");
  8.  
  9.  
  10. MyAdapter.UpdateCommand = new MySqlCommand("UPDATE stock set stock.NomPiece = ?NomPiece where stock.id = ?id", Connection);
  11. MyAdapter.UpdateCommand.Parameters.Add("?NomPiece", MySqlDbType.VarString, 45, "NomPiece");
  12. MyAdapter.UpdateCommand.Parameters.Add("?id", MySqlDbType.String, 0, "id");
  13.  
  14.  
  15. MyAdapter.Update(this.ds, "stock");
  16. Connection.Close();


j'ai l'erreur la Impossible pour Update de trouver TableMapping['stock'] ou DataTable 'stock'.
  • Commenter cette réponse |
Score
0
òh
òi
, Maître Yoda |
merci de ta réponse si rapide je vais voir de se coté
  • Commenter cette réponse |

Ce n'est pas ce que vous cherchiez ?

Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS