DatagridView [Résolu]

vbasamuel 7 Messages postés mardi 30 septembre 2008Date d'inscription 9 novembre 2012 Dernière intervention - 7 nov. 2012 à 12:10 - Dernière réponse : Whismeril 12130 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 octobre 2018 Dernière intervention
- 8 nov. 2012 à 19:17
Bonjour,

je suis en apprentissage Visual Basic 2010 express.

j'ai construit un windows form qui m'affiche une table access.

Mon but est d'afficher le contenu pour en faciliter la modification (ni suppression, ni ajout de nouvelle ligne). jusque là aucun problème.

Cependant des champs de la table affiche une valeur que je voudrais "transformer" dans une autre colonne indépendante de la table.
Exemple si valeur champ = 458752 de la colonne Price_Unit, alors affiche
dans colonne Valeur (colonne que j'ai ajouté manuellement dans le dataset) le texte : "euro"

ma question est : comment dois-je procéder pour faire un test (IF - THEN) sur une cellule d'une colonne issue de la table access vers une cellule d'une colonne ajouter au dataset?



Samuel
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Whismeril 12130 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 octobre 2018 Dernière intervention - 7 nov. 2012 à 20:56
3
Merci
Bonjour et bien je te propose de poster ce message dans le forum VB...
Là tu es en C#!
Accueil > Forum > C# > Windows > Formulaire / Winforms / Controls > DatagridView


Whismeril

Merci Whismeril 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de Whismeril
0
Merci
Si tu veux faire des test si champs 1 > champs 2 ou n'importe quoi il faut savoir que le if ne prend que des Int donc pour faire des test il faut que tu cast tes champs en int
Regarde et lis bien ce sujet. Le probleme que tu a est a peu pres la meme chose que moi .
Ici
Commenter la réponse de thefolin
Whismeril 12130 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 octobre 2018 Dernière intervention - 8 nov. 2012 à 19:17
0
Merci
Bonsoir
@TheFolin, l'instruction if ne prend pas que des int, dans ton cas tu essayais d'abord de comparer 2 cellules qui ne sont pas des objets comparables, puis tu as voulu comparer les contenu par l'intermédiaire des propriétés Value ce qui est déjà mieux mais là encore le type object n'est pas comparable.
Il t'a donc fallu caster tes .Value en int, mais en double ça aurait aussi fonctionné.

@vbsamuel

Je ne connais pas le VB.Net et VB6 est bien loin.

En C#, je chargerais le contenu de ta table dans une liste d'objet perso adapté. Dans cet objet j'aurais crée une propriété supplémentaire qui retournerais le calcul dont tu as besoin. Et enfin je mettrais la liste en DataSource de ton datagridview. En fait, ainsi le datagirdview ne sert que d'affichage et classe métier fait les calculs.

Voici un exemple, si tu as une table contenant des noms, prénom et dates de naissance et que tu veuilles afficher l'âge.


class Personne//là ma classe métier
{
   public string Nom {get; set;}
   public string Prenom {get; set;}
   public DateTime DateNaiss {get; set;}
   public int Age
   {
       get { return DateTime.Now.Year - DateNaiss.Year;}
   }

}

//tu charges tes données dans une List
List personnes = new List();
//le code qui va bien pour remplir


//tu affectes la liste
DataGridView1.Datasource = personnes;



Et comme ça tu as une colonne Age.

Maintenant je ne sais pas transcrire ça en VB autrement qu'avec un traducteur, ça donne ça:

Class Personne
'là ma classe métier
Public Property Nom() As String
Get
Return m_Nom
End Get
Set
m_Nom = Value
End Set
End Property
Private m_Nom As String
Public Property Prenom() As String
Get
Return m_Prenom
End Get
Set
m_Prenom = Value
End Set
End Property
Private m_Prenom As String
Public Property DateNaiss() As DateTime
Get
Return m_DateNaiss
End Get
Set
m_DateNaiss = Value
End Set
End Property
Private m_DateNaiss As DateTime
Public ReadOnly Property Age() As Integer
Get
Return DateTime.Now.Year - DateNaiss.Year
End Get
End Property

End Class


'Déclaration de la liste
Dim personnes As New List(Of Personne)()
'affectation du datasource
DataGridView1.Datasource = personnes

Whismeril
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.