begin process at 2012 02 11 01:55:35
  Trouver un code source :
 
dans
 
Accueil > 

Tutoriels

 > 

Tutoriaux

 > TUTORIEL DATAGRIDVIEW

TUTORIEL DATAGRIDVIEW


 Information sur le tutoriel

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

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

 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

//

 Historique

06 mars 2006 23:15:46 :
pas de mise a jour

Commentaires

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

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

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

Commentaire de joelle592001 le 24/10/2007 23:27:12

Pour ne pas trier
myDataGridView.AllowSorting = false;

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.

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 !!!

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!

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

Commentaire de leseul2007 le 01/11/2009 08:43:02

Bonjour moi j'ai un problème avec le datagridview. je veux faire disparaitre la premiere colonne celle ou il y a marque * mais je ne sais pas comment faire cela.
quelqu'un pourrai t-il me venir en aide ca m'aiderai beaucoup.


merci et j'attendsd les suggestions

Commentaire de leseul2007 le 01/11/2009 08:45:27

Aussi je voudrai mettre une couleur sur toute une cellule.


J'attends incessamment vos suggestions

Commentaire de Tacatac le 05/11/2009 21:14:54

TonDataGridView.RowHeadersVisible = False pour masquer la première colonne (*)

Commentaire de selassi le 18/02/2011 05:01:39

MERçI POUR LE TUTO :)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,047 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales