Je travaille sur le projet C #, je stocke des données sur la base de données MySQL hébergée sur le serveur local, le formulaire stockant des données à la base de données, mais lorsque j'essaie d'extraire le formulaire de données MySQL dans DataGridView IT Afficher l'erreur de
System.Collections.Generic.KeyNotFoundException: 'La clé donnée était pas présent dans le dictionnaire. ' p> blockQuote>
mon code de connexion est p>
xxx pré> lorsque je modifie le serveur IP sur localhost, il commence à fonctionner. Je pense donc qu'il y a un problème avec la chaîne de connexion, mais incapable de le comprendre. Le code pour afficher les données dans DataGridView est P>
string Query = "SELECT id AS 'ID',driver_name AS 'Driver Name',driver_license_no AS 'License No',driver_cnic_no AS 'Driver CNIC No' FROM table_name ORDER BY ID Desc"; command = new MySqlCommand(Query, connection); adapter = new MySqlDataAdapter(command); table = new DataTable(); adapter.Fill(table); dataGridView1.DataSource = table;
5 Réponses :
On dirait que la chaîne de connexion a des panneaux d'espace supplémentaire:
J'ai essayé en supprimant les espaces de la chaîne de connexion, mais le même problème.
Votre code a l'air bien pour moi. Veuillez vérifier si vous utilisez la dernière
Cher @hasnu Zama Oui j'utilise la bibliothèque mysql.data mise à jour
J'ai essayé votre code (méthode de l'adaptateur jusqu'à l'adaptateur) et sa fonctionnement bien. Pouvez-vous s'il vous plaît poster le code cippet sur lequel nous pouvons reproduire ce problème
oui lorsque je connecte une application avec localhost, cela fonctionne bien, mais lorsque je le connecte avec le serveur, il affiche une erreur.
La version de MySQL.Data DLL était mon problème, qui était incompatible avec le type DBColumn. J'ai donc dû passer aussi bien que de conserver la version en Sync avec ma version de Framework .NET.
Il peut s'agir d'un problème de classement sur l'autre serveur, essayez sans le Charset et voir:
Server=192.168.0.xxx;Port=3306;Database=databaset;User ID=xxx;Password=xxxx;
Je l'ai essayé en supprimant Charset = UTF8; mais pas de succès
sur la vérification de la base de données du serveur si la valeur "Collation" de chaque colonne est identique au type de données de colonne. La différence entre eux pourrait soulever une telle erreur. p>
Cette erreur peut être résolue en sélectionnant la valeur "Table par défaut" dans l'option "Collation" pour toutes les colonnes d'une table. P>
Il existe une solution sur cette page qui pourrait aider: à surmonter "La clé donnée n'était pas présente dans l'exception du dictionnaire" Exception dans MySQL P>
J'ai résolu le problème en utilisant
La version de MySQL.Data DLL était mon problème, qui était incompatible avec le type DBColumn. J'ai donc dû passer aussi bien que de conserver la version en Sync avec ma version de Framework .NET.
Pouvez-vous voir sous le débogueur quelle ligne jette une erreur?
Adapter.frillage (Table); Cette ligne jette une erreur
Dupliqué possible de Stackoverflow.com/a/59739008/23633
@BradleyGraringer J'ai vérifié cette question et essayé mais pas de succès, je me demande en utilisant la connexion locale (comme localhost au lieu de la propriété intellectuelle), c'est bien fonctionner, mais lorsque je connecte avec serveur (comme donnant une adresse IP au lieu de localhost), il affiche une erreur, par la même connexion J'ai inséré avec succès des données dans la base de données du serveur.