Affichage des donnés de la base de donné MySql dans datagridview

ing-enis -  
dragazor Messages postés 56 Statut Membre -
Bonjour à toutes et à tous,
je suis nouveau sur le forum et aussi débutant en C# et MySQL. Jai une base de données en MySQL et Je code avec Visual C# 210 une application pour la gestion de trésorerie. En fait mon probléme c'est ce que j'ai mis des dataGridView dans les interfaces et je veux remplir ces tables a partir des tables existant deja dans ma base de donnée. j'ai utilisé ce code:

String forconnect = "Port=;Database=G;server=lo;UId=;Password=";
            // Créer un adaptateur
  MySqlDataAdapter dAdapter = new MySqlDataAdapter("SELECT * FROM Tiers", forconnect);
            // Créer un DataTable pour mémoriser les données
            DataTable dTable = new DataTable();
            // Remplit l'adaptateur
            dAdapter.Fill(dTable);
            // BindingSource pour synchroniser le DataTable et le DataGridView
            BindingSource bSource = new BindingSource()
           // Indique la source du DataBinding
            bSource.DataSource = dTable;
            // Indique la source du DataGridView
            dataGridView1.DataSource = dTable;

mais l'affichage ne se fait pas dans les colonnes que j'ai deja mis mais dans d'autres colonnes qui s'ajoute au tableau avec les noms existant dans la base de données et les premieres colonnes reste vide. j'arrive pas a resoudre ce probleme pour que les données s'affiche dans mes colonnes.
Merci à l avance de toute aide .
A voir également:

1 réponse

dragazor Messages postés 56 Statut Membre 5
 
Salut,

sur la DataGridView, il y a une propriete qui s'apelle "autogeneratecolumns" qu'il faut passer a False pour éviter qu'il ne génère les colonnes tout seul.

Selon moi voici ce que tu peux faire:

Solution 1:
En mode Design, sur ta Gridview, la ou tu as créé tes colonnes, il y a des propriétés pour chacune de tes colonnes. Dans ces propriétés, il y une partie "Données" ou tu trouvera "Datafield". Dans Datafield il te faut mettre le nom du champ ou de la donnée que tu récupère dans ta base.
Si tu fais : Select Modele, Marque, Chevaux from Voitures
Pour la colonne Modèle de ta DataGridView, dans DataField il te faudra mettre Modele.
Si tu as une colonne Puissance tu mettras dans DataField Chevaux

En gros ca te permet de dire a ta DataGridView, dans cette colonne la je veux mettre telle donnée.

Solution 2:
Tu crèes un DataTable (avec les noms de colonnes que tu veux) qui va récupérer les données issues de ta base de données. Après tu utilise le DataTable comme source de ton DataGridView. Dans ce cas tu n'a plus avec "AutoGenerateColumns = True". Il va te générer les bonnes colonnes.

En espérant avoir bien compris le problème et avoir pu aider.
0