Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

TUTORIEL DATAGRIDVIEW


Information sur le tutorial

Catégorie :Tutoriaux Tutorial .NET ( DotNet ) Date de création : 06/03/2006 11:21:00 Vu : 28 465 fois

Note :
5,11 / 10 - par 9 personnes
5,11 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (8)
Ajouter un commentaire et/ou une note

Description

Deux modèles de création de DataGridView

Tutorial

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

/*                                Les variables                                     */

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

private DataSet ds;

private OdbcConnection myConnect;

private OdbcDataAdapter da ;

private string strCommand ;

private OdbcCommand myCommand;

private OdbcDataReader myReader;

private DataTable laTable;

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

/*                           Création de la connexion                               */

/*            On peut evidemment charger une table Oracle, Access ou Sql            */

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

string strConnect =     "DRIVER={MySQL ODBC 3.51 Driver};" +

                        "SERVER=localhost;" +

                        DATABASE=" + mabase + ";" +

                        "UID=;" +

                        "PASSWORD=;" +

                        "OPTION=3";

OdbcConnection myConnect = new OdbcConnection();

myConnect.ConnectionString = strConnect;

myConnect.Open();

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

/*                         Chargement de la table                                   */

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

// 1er Solution: la plus simple

// Chargement direct d’une table du DataSet

// dans les propriétées du DataGridView on choisi les options

// a la ligne Columns: Collection on ajoute les colonnes

// en mettant les noms de champs a la ligne DataPropertyName

dataGridView1.AutoGenerateColumns = false;

ds = new DataSet();

strCommand = "SELECT * FROM maTable ";

da = new OdbcDataAdapter(strCommand, myConnect);

da.Fill(ds);

dataGridView1.DataSource = ds.Tables[0];

/************************************************************************************/

// 2ème Solution: Ma preferée

// Elle me permet de faire facilement tous les DataGridView du programme identiques

strCommand = "SELECT * FROM maTable ";

myCommand = new OdbcCommand();

myCommand.CommandText = strCommand;

myCommand.CommandType = CommandType.Text;

try

{

myCommand.Connection = myConnect; 

      OdbcDataReader myReader = Command.ExecuteReader(CommandBehavior.CloseConnection);

}

catch(Exception ex)

{

      MessageBox.Show("Erreur DataReader :" + ex.Message);

}

/*++++++++++++++++++++++++++  Création d’une DataTable  ++++++++++++++++++++++++++++*/

string[] nomCol = new string[12]{"Code", "Nom", "Prenom", "","","","","","","","",""};

int[] largCol = new int[12]{100, 150, 150,0,0,0,0,0,0,0,0,0};

laTable = new DataTable();

laTable.TableName = "La Table";

DataColumn[] TabCol = new DataColumn[nomCol.Length];

for(int i = 0; i < nomCol.Length; i++)

{

TabCol[i] = new DataColumn(nomCol[i] ,Type.GetType("System.String"));

      TabCol[i].ColumnName = nomCol[i].ToString();

      laTable.Columns.Add(TabCol[i]);

}

/*++++++++++++++++++++++++++ Chargement de la DataTable  +++++++++++++++++++++++++++*/

try

{

while(monReader.Read())

      {

            DataRow entree;

            entree = laTable.NewRow();

            for(int i = 0; i < monReader.FieldCount; i++)

                  if(myReader .GetString(i) != null)

                        entree[i] = myReader.GetString(i);

            laTable.Rows.Add(entree);

}

catch(Exception se)

{

      MessageBox.Show("Erreur au chargement : " + se.Message);

}

/*++++++++++++++++++++++++++  Création du DataGridView  ++++++++++++++++++++++++++++*/

dataGridView1.DataSource = laTable;

StyleColonne(dataGridView1, nomCol, largCol);

StyleLigne(dataGridView1);

/*+++++++++++++++++++  Fonction des Création des Colonnes  +++++++++++++++++++++++++*/

public void StyleColonne(DataGridView myDataGridView, string[] myNom, int[] myLarg)

{

// largeur des colonnes et affichage des noms de colonnes(si identiquent a la table)

for (int i = 0; i < 12; i++)

            if (myLarg[i] != 0)

            {

                  myDataGridView.Columns[i].Width = myLarg [i];

                  myDataGridView.Columns[i].Name = myNom[i];

            }

            else

                  myDataGridView.Columns[i].Visible = false;

 }

/*+++++++++++++++++++++  Fonction des Création des Lignes  +++++++++++++++++++++++++*/

/*                 J’ai choisi pour l’exemple quelques options                      */

public void StyleLigne(DataGridView myDataGridView)

{

// modifier les colonnes et les lignes

myDataGridView.AllowUserToResizeColumns = false;

myDataGridView.AllowUserToResizeRows = false;

// couleur de fond

myDataGridView.BackgroundColor = Color.White;

// affichage des en-tête de colonnes

myDataGridView.ColumnHeadersVisible = false;

// couleur des séparations

myDataGridView.GridColor = Color.White;

// interdire les modifs des cellules

myDataGridView.ReadOnly = true;

// affichage des en-tête de ligne

myDataGridView.RowHeadersVisible = false;

// mode de selection des cellules

myDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

myDataGridView.MultiSelect = false;

// style des cellules

myDataGridView.DefaultCellStyle.Alignment =                                                                          DataGridViewContentAlignment.MiddleCenter;

      myDataGridView.DefaultCellStyle.Font =

                                         Font("Book Antiqua", 9, FontStyle.Regular);

}

/************************************************************************************/

// 3ème Solution:

// Il Existe une troisième solution que je n’ai pas developpée

// Créer une classe MonDataGridView dérivée de DataGridView

//

06 mars 2006 23:15:46 :
pas de mise a jour
signaler à un administrateur
Commentaire de nico_fip1 le 15/03/2006 15:06:15

Merci pour ce petit Tuto ; il va me servir de base.

Si tu as d'autres choses intéressantes dans ce domaine, n'hésite pas...
C'est tout à fait ce que je cherche :
http://www.csharpfr.com/forum.v2.aspx?ID=688019

signaler à un administrateur
Commentaire de kme le 12/02/2007 11:23:29


c'est quoi la variable monreader?car on fait un while dessus mais elle n'est renseigné à aucun endroit

signaler à un administrateur
Commentaire de kof_ralph le 14/09/2007 15:36:17

monreader correspond en fait à myReader déclaré plus haut.
De même il y a une petite erreur aussi à la ligne
myDataGridView.DefaultCellStyle.Font =

                                         Font("Book Antiqua", 9, FontStyle.Regular);

il faut un "new" devant Font("Book Antiqua", 9, FontStyle.Regular);
Sinon, c'est pas mal comme code, ça m'a bien aidé en tout cas.

Quelqu'un sait par contre comment interdire l'évenement click sur l'entete de colonne qui modifie l'ordre des lignes (ascendant ou descendant). Moi je ne veux pas qu'on change l'ordre.
Merci d'avance

signaler à un administrateur
Commentaire de joelle592001 le 24/10/2007 23:27:12

Pour ne pas trier
myDataGridView.AllowSorting = false;

signaler à un administrateur
Commentaire de Elwe31 le 13/02/2008 13:38:33

Bonjour,

Super ce code !! merci
Mais comment on fait pour mettre a jour la base de données avec les modif faites dans le datagridview ???

merci d'avance.

signaler à un administrateur
Commentaire de olibara le 15/02/2008 08:13:39

Bonjour

Tres clair et interessant mais meme commentaire que Elwe31 le 13/02/2008 13:38:33
On trouve beaucoup d'exemple pour se connecter ou remplir un datagridview

Mais une bonne explication pour faire un update dans la base apres modification dans le datagridview est ignorée par tous, ca reste le graal

Je cherche et je ne trouve pas !!!

signaler à un administrateur
Commentaire de bikergete le 15/02/2008 09:03:18

Bonjour,

En fait je met a jour la DataTable, que j'ai chargée du Dataset et je refais un affichage pour mettre a jour le Datagridview

A vous de jouer!

signaler à un administrateur
Commentaire de hacklove le 14/09/2008 21:16:49

i really appreciate the use of your code what i m looking for is to able to select the row value from a datagridview that was binding from a database

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Novembre 2008
LMMJVSD
     12
3456789
10111213141516
17181920212223
24252627282930

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,218 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.