IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Comment faire pour choisir une colonne d'un dataGrid?


Sujet :

Windows Forms

  1. #1
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut Comment faire pour choisir une colonne d'un dataGrid?
    Bonjour tout le monde,

    Je travail sous Visual Studio2003.

    J'ai une fenêtre de mon application ou se situe un dataGrid qui se remplit manuellement(a l'aide du clavier plus précisément pour chaque ligne on remplit colonne par colonne).
    Je souhaiterais savoir comment on peux faire pour choissir(sélectionner) une colonne en particulier dans une ligne??
    Je voudrais savoir cela car j'aimerais pouvoir faire en sorte de remplir (pour chaque ligne remplit) la première colonne automatiquement si la colonne2 est remplit. En gros un code, qui serait le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI colonne2DuDataGrid différent ""  ALORS colonne1DuDataGrid égal 10/10/2005
    Comment je peux faire??

    Cordialement!!

  2. #2
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Rien de bien compliqué.

    Tu t'abonnes à l'évènement CellLeave et tu mets un code dans ce genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    private void dataGridView1_CellLeave(object sender, DataGridViewCellEventArgs e)
    {
        if (e.ColumnIndex == 1)
        {
            if (dataGridView1.Rows[e.RowIndex].Cells[0].Value == null)
            {
                dataGridView1.Rows[e.RowIndex].Cells[0].Value = DateTime.Now.ToShortDateString();
            }
        }
    }

  3. #3
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Skyounet
    Bonjour,

    Tout d'abord merci pour ta réponse.

    Je n'utilise pas un dataGridView mais un dataGrid car je suis sur visual Studio 2003. Puis, l'événement CellLeave ne correspond pas au propriété d'un dataGrid donc par quel événement je peux le remplacer??

    Comment puis-je faire avec un dataGrid??

    Merci d'avance!!

  4. #4
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Bah remplace ton DataGrid par un DataGridView

    Citation Envoyé par msdn
    The DataGridView control replaces and adds functionality to the DataGrid control; however, the DataGrid control is retained for both backward compatibility and future use, if you choose.

  5. #5
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Je n'utilise pas un dataGridView mais un dataGrid car je suis sur visual Studio 2003.
    Citation Envoyé par Skyounet Voir le message
    Bah remplace ton DataGrid par un DataGridView
    Arrête de remuer le couteau dans la plaie de ce pauvre loic20h28 : la DataGridView n'est pas dispo dans le framework 1.1

  6. #6
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par Guulh Voir le message
    Arrête de remuer le couteau dans la plaie de ce pauvre loic20h28 : la DataGridView n'est pas dispo dans le framework 1.1
    Ah j'avais pas vu. Faudrait ptet évolué parce que le 1.1 c'est un peu pourri quand même (bon après on choisi pas non plus, c'est peut-être imposé).

  7. #7
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut
    Ui effectivement on a pas forcément le choix donc pas la peine de jugé!!

    Donc comment feriez-vous avec un dataGrid??

    aidez moi s'il vous plais!! ça fais un bye que je réfléchi la dessus mais je ne trouve rien!!

    J'ai besoin de votre aide!!

    Cordialement!!

  8. #8
    Expert éminent sénior
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Ui effectivement on a pas forcément le choix donc pas la peine de jugé!!
    Où est-ce que tu vois un jugement toi ?
    A part que j'ai dit que le 1.1 c'était pourri, mais ça c'est sans rapport avec toi.

    Donc comment feriez-vous avec un dataGrid??
    N'ayant jamais utilisé ce contrôle, je viens de regarder rapidement et je dois dire que j'ai pas d'idées.

  9. #9
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Bonjour,

    Avec quoi le datasource de ton dataGrid est lié? une datatable, une arrayList?

    Parce que dans ce cas là, tu pourrais accéder à tes données de façon indirecte avec la datasource.

    Je te donne l'exemple d'un arrayList d'un objet "Donnees"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    // Ma classe de données
    public class Donnees
    {
    	private string animal;
    	private string son;
    	public Donnees(string a, string s)
    	{
    		animal = a;
    		son = s;
    	}
    	public string Animal
    	{
    		get{ return animal; }
    		set{ animal = value; }
    	}
    	public string Son
    	{
    		get{ return son; }
    		set
    		{ 
    			son = value; 
    			if(animal == "")
    				animal = "valeur";
    		}
    	}
    }
     
    //Ma classe de liste de Données (pour avoir les methodes de ArrayList)
    public class listeDonnees : ArrayList {}
    Utilisation:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    listeDonnees liste = new listeDonnees();
    liste.Add(new Donnees("chat", "miaou"));
    liste.Add(new Donnees("chien", "waf"));
    liste.Add(new Donnees("ane", "hihan"));
     
    dataGrid1.DataSource = liste;
    Pour les événements, il n'y a aucun événement dans DataGrid pour gérer les modifications de cellule, alors j'utilise le setter Animal pour detecter une modif et gerer le cas où Son est vide ou pas.

    Sinon, on peut tricher un peu, c'est pourri mais j'ai pas mieux: l'evenement dataGrid.Leave, quand on sort du datagrid, il se met à jour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    private void dataGrid1_Leave(object sender, System.EventArgs e)
    {
    	if(dataGrid1.DataSource != null)
    	{
    		foreach(Donnees d in ((listeDonnees)dataGrid1.DataSource))
    		{
    			if(d.Animal == "")
    			{
    				d.Animal = "valeur";
    				datagrid1.refresh();
    			}
    		}
    	}
    }
    J'espère que ça t'aidera au moins

  10. #10
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à Skyounet et à titip
    Réponse à Skyounet : désolé, j'ai mal interprété ce que tu as dit!!

    Réponse à titip : Merci pour ton aide. Voici le code qui me permet de remplir mon dataGrid enfin quand des données sont déja enregistré dans ma base de données SqlServer2000 où de créer les colonnes du dataGrid.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    string RelationClientele = ("SELECT RC_NUMINTER as numinter, RC_DHRELCL as DateHeure, RC_CNURELCL as Contenu, RC_TELCTACT as Tel, RC_MOYCTACT as MoyenContact FROM RELATION_CLIENTELE WHERE RC_NUMINTER = '" + NumInter.Text + "'");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter1 = new SqlDataAdapter(RelationClientele, connection);
    				dataAdapter1.Fill(ds1,"RelationClientele");
    				dataGrid2.DataSource = ds1;
    				dataGrid2.DataMember = "RelationClientele";
     
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}
    J'espère que cela pourra faire en sorte que l'on m'aide!!

    Cordialement!!

  11. #11
    Membre régulier
    Profil pro
    Consultant informatique
    Inscrit en
    Juin 2006
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2006
    Messages : 130
    Points : 115
    Points
    115
    Par défaut
    Quel est le type de ta variable ds1?
    S'est une DataTable?

  12. #12
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à OLman135
    ds1 est un dataSet

    Cordialement!!

  13. #13
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    ds1 est un dataSet

    Cordialement!!
    Ce que tu peux faire alors, c'est d'utiliser un DataTable au lieu d'un DataSet et de modifier le 2eme code que je t'ai mis par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    DataTable dt = new DataTable();
    string RelationClientele = ("SELECT RC_NUMINTER as numinter, RC_DHRELCL as DateHeure, RC_CNURELCL as Contenu, RC_TELCTACT as Tel, RC_MOYCTACT as MoyenContact FROM RELATION_CLIENTELE WHERE RC_NUMINTER = '" + NumInter.Text + "'");
    connection.Open();
    try
    {
    	SqlDataAdapter dataAdapter1 = new SqlDataAdapter(RelationClientele, connection);
    	dataAdapter1.Fill(dt,"RelationClientele");
    	dataGrid2.DataMember = "RelationClientele";
     
    }
    catch(Exception ex)
    {
    	MessageBox.Show(ex.ToString());
    }
    finally
    {
    	connection.Close();
    }
     
    listeDonnees liste = new listeDonnees();
    //Transformation du DataTable en listeDonnees			
    foreach(DataRow dr in dt.Rows)
    {
    	liste.Add(new Donnees(dr[0].ToString(),dr[1].ToString()));
    }
    dataGrid2.DataSource = liste;
    bien sur en adaptant selon tes variables (au lieu d'avoir que 2 colonnes en string, ce sera tes 5 colonnes avec les bons types)

  14. #14
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à titip
    Merci pour ton aide.

    Voici le code que cela me donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    DataTable dt1 = new DataTable();
    			string RelationClientele = ("SELECT RC_NUMINTER as numinter, RC_DHRELCL as DateHeure, RC_CNURELCL as Contenu, RC_TELCTACT as Tel, RC_MOYCTACT as MoyenContact FROM RELATION_CLIENTELE WHERE RC_NUMINTER = '" + NumInter.Text + "'");
    			connection.Open();
    			try
    			{
    				SqlDataAdapter dataAdapter1 = new SqlDataAdapter(RelationClientele, connection);
    				dataAdapter1.Fill(dt1,"RelationClientele");
    				dataGrid2.DataMember = "RelationClientele";
     
    			}
    			catch(Exception ex)
    			{
    				MessageBox.Show(ex.ToString());
    			}
    			finally
    			{
    				connection.Close();
    			}  
    			listeDonnees liste = new listeDonnees();
    			//Transformation du DataTable en listeDonnees			
    			foreach(DataRow dr in dt1.Rows)
    			{
    				liste.Add(new Donnees(dr[0].ToString(),dr[1].GetType(numeric), dr[2].GetType(datetime), dr[3].ToString(), dr[4].ToString(), dr[5].ToString()));
    			}
    			dataGrid2.DataSource = liste;
    Malheureusement j'obtien les erreurs suivant :
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1027): La méthode surchargée correspondant le mieux à 'System.Data.Common.DbDataAdapter.Fill(System.Data.DataTable, System.Data.IDataReader)' possède des arguments non valides
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1027): Argument '2'*: impossible de convertir de 'string' en 'System.Data.IDataReader'
    ces erreurs correspondent à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAdapter1.Fill(dt1,"RelationClientele");
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1039): Le type ou le nom d'espace de noms 'listeDonnees' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    celle la correspond à
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1043): Le type ou le nom d'espace de noms 'Donnees' est introuvable (une directive using ou une référence d'assembly est-elle manquante*?)
    celle la correspond a Comment faire!!

    Cordialement!!

  15. #15
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    ces erreurs correspondent à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAdapter1.Fill(dt1,"RelationClientele");
    remplace cette ligne par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataAdapter1.Fill(dt1);
    Citation Envoyé par loic20h28 Voir le message
    celle la correspond à celle la correspond a
    tu n'as pas créé les classes Donnees et listeDonnees:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    // Ma classe de données
    public class Donnees
    {
    	private int numinter;
    	private DateTime dateHeure;
    	private string contenu;
    	private string tel;
    	private string moyenContact;
     
    	public Donnees(int n, DateTime d, string c, string t, string m)
    	{
    		numinter= n;
    		dateHeure= d;
    		contenu= c;
    		tel= t;
    		moyenContact= m;
    	}
    	public DateTime DateHeure
    	{
    		get{ return dateHeure; }
    		set{ dateHeure= value; }
    	}
    	public string Contenu
    	{
    		get{ return contenu; }
    		set
    		{ 
    			contenu= value; 
    			if(dateHeure == null)
    			{
    				dateHeure = DateTime.Parse("10/10/2005");
    			}
    		}
    	}
    	public string Tel
    	{
    		get{ return tel; }
    		set{ tel = value; }
    	}
    	public int NumInter
    	{
    		get{ return numinter; }
    		set{ numinter= value; }
    	}
    	public string MoyenContact
    	{
    		get{ return moyenContact; }
    		set{ moyenContact= value; }
    	}
    }
     
    //Ma classe de liste de Données (pour avoir les methodes de ArrayList)
    public class listeDonnees : ArrayList {}

  16. #16
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à titip
    Oui, j'avou c'est bête comme erreur!!

    Je comprend pas trop pourquoi avoir mit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(dateHeure == null)
    			{
    				dateHeure = DateTime.Parse("10/10/2005");
    			}
    dans le 'set' de 'contenu'??

    Ensuite, j'ai encore des erreurs :
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(809): L'opérateur '==' ne peut pas être appliqué aux opérandes de type 'System.DateTime' et '<null>'
    qui correspond à la ligne
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1098): Aucune surcharge pour la méthode 'Donnees' ne prend d'arguments '6'
    qui correspond "new" de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.Add(new Donnees(dr[0].ToString(),dr[1].GetType(), dr[2].GetType(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString()));
    Cordialement!!

  17. #17
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Citation Envoyé par loic20h28 Voir le message
    Oui, j'avou c'est bête comme erreur!!

    Je comprend pas trop pourquoi avoir mit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(dateHeure == null)
    			{
    				dateHeure = DateTime.Parse("10/10/2005");
    			}
    dans le 'set' de 'contenu'??
    C'etait pour ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI colonne2DuDataGrid différent ""  ALORS colonne1DuDataGrid égal 10/10/2005
    Je pense que tu voulais à la base pouvoir mettre une valeur par défaut "10/10/2005" à la date si une autre colonne (j'ai supposé que c'était 'Contenu') est vide

    Ensuite, j'ai encore des erreurs : qui correspond à la ligne
    Normal parce que j'ai fait n'importe quoi , essaie plutot un truc du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(contenu == "")
    			{
    				dateHeure = DateTime.Parse("10/10/2005");
    			}
    qui correspond "new" de la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.Add(new Donnees(dr[0].ToString(),dr[1].GetType(), dr[2].GetType(), dr[3].ToString(), dr[4].ToString(), dr[5].ToString()));
    Normal parce que tu as 5 colonnes, il faut que tu t'arretes à dr[4] parce que tu commences par dr[0]

  18. #18
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à titip
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SI colonne2DuDataGrid différent ""  ALORS colonne1DuDataGrid égal 10/10/2005
    Ce que je voulais dire par la c'étais : si la colonne2 donc DateHeure est différent de vide(donc que cette colonne est rempli) alors la colonne1 qui correspond au numéro de l'intervention, prenne comme valeur le numéro d'intervention déja choissit auparavent(ce qui se rapporte a un label nommé NumInter.Text).

    Lorsque je fais cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    public string Contenu
    			{
    				get{ return contenu; }
    				set
    				{ 
    					contenu= value; 
    					if(contenu == null)
    					{
    						numinter = NumInter.Text;
    					}
    				}
    			}
    il m'affiche l'erreur suivant :
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(811): 'int' ne contient pas de définition pour 'Text'
    Ensuite, lorsque je retire un 'dr' alors il m'affiche toujours l'erreur suivante(qui correspond au new) :
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1098): La méthode surchargée correspondant le mieux à 'SuiviClient_DistribInfo.SuiviIntervention.Donnees.Donnees(int, System.DateTime, string, string, string)' possède des arguments non valides
    Ensuite j'obtien les message suivant pour les 3 premier arguments :
    C:\Documents and Settings\fils\Mes documents\Visual Studio Projects\SuiviClient_DistribInfo\SuiviIntervention.cs(1098): Argument '2'*: impossible de convertir de 'System.Type' en 'System.DateTime'
    Je pense que ça vien du fait que j'ai mal traduit le type. Voila ce que j'ai mis comme code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	liste.Add(new Donnees(dr[0].ToString(),dr[1].GetType(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString()));
    Dans ma base, le champ "DateHeure" est de type 'datetime'. Donc je vois pas comment l'indiqué??

    Cordialement!!

  19. #19
    Membre du Club

    Inscrit en
    Mars 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 63
    Points : 65
    Points
    65
    Par défaut
    Ok, fais juste gaffe, ta date ne sera jamais nulle, si tu la vides, elle prendra la valeur DateTime("01/01/0001"), mais ça ne posera plus de problème maintenant.

    Pour les erreurs:

    Citation Envoyé par loic20h28 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numinter = NumInter.Text;
    numinter est declaré comme entier, il faut le caster en Int
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numinter = Int32.Parse(NumInter.Text);
    Citation Envoyé par loic20h28 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    liste.Add(new Donnees(dr[0].ToString(),dr[1].GetType(), dr[2].ToString(), dr[3].ToString(), dr[4].ToString()));
    La meme chose pour cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste.Add(new Donnees(Int32.Parse(dr[0].ToString()),DateTime.Parse(dr[1].ToString()), dr[2].ToString(), dr[3].ToString(), dr[4].ToString()));
    Bon courage pour la suite

  20. #20
    Débutant  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 571
    Points : 353
    Points
    353
    Par défaut réponse à titip
    numinter je l'ai mit de type string car dans ma base de données, le champ "numinter" de ma table 'relation_clientèle' est de type 'varchar'.
    Donc je pense pas qu'il faut que je le caste en int?? !!

    Mais comment je peux faire pour que numinter(de mon dataGrid) prenne comme valeur le label correspondant au numéro d'intervention??

    Cordialement!!

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/05/2009, 03h48
  2. Comment faire pour qu'une colonne s'agrandisse selon son contenu?
    Par loic20h28 dans le forum Windows Forms
    Réponses: 19
    Dernier message: 13/08/2008, 19h34
  3. Comment faire pour afficher une image ds une dbgrid
    Par totomaze dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/10/2004, 15h31
  4. Comment faire pour killer une application ?
    Par tintin22 dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 17/08/2004, 18h16
  5. comment faire pour qu'une application soit toujours visible ?
    Par goldbar dans le forum Langages de programmation
    Réponses: 2
    Dernier message: 28/03/2004, 14h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo