loic20h28
Messages postés207Date d'inscriptionmardi 19 juin 2007StatutMembreDernière intervention22 février 2016
-
26 févr. 2008 à 15:16
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014
-
1 mars 2008 à 23:44
Bonjour à tous,
J'aimerais réaliser un DataGrid dans lequel se trouverais les 5 dernières interventions du client choisit auparavant.
Je n'ai jamais réalisé de DataGrid donc j'ai besoin de votre aide s'il vous plais.
Je pense avec les tutos que j'ai lu, qu'il serait bien que je réalise un dataSet.
J'aimerais avoir votre aide sur le procédé de comment réaliser et surtout remplir mon dataGrid??
J'ai essayé quelque chose mais ça fonctionne pas :
CODE :
string
requete ("SELECT TOP 5 INTERVENTION.IN_NUMINTER, CONTACT.CT_NOMCTACT, MACHINE.M_NOMMAT FROM INTERVENTION INNER JOIN MACHINE ON INTERVENTION.IN_IDMAT MACHINE.M_IDMAT AND INTERVENTION.IN_NUMCLT = dbo.MACHINE.M_NUMCLT INNER JOIN CONTACT ON MACHINE.M_NUMCTACT = CONTACT.CT_NUMCTACT WHERE INTERVENTION.IN_NUMCLT = '" + NumClt.Text + "' ORDER BY INTERVENTION.IN_NUMINTER DESC");connection =
new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI");connection.Open();
try{
SqlDataAdapter dataAdapter new SqlDataAdapter(requete,connection);DataSet ds
loic20h28
Messages postés207Date d'inscriptionmardi 19 juin 2007StatutMembreDernière intervention22 février 20162 27 févr. 2008 à 15:35
Je suis désolé mais ça fonctionne toujours pas pour la première ligne c'est à dire que si je clique sur la première ligne-1er colonne en premier, rien ne se passe.
Je comprend pas pourquoi.
P.S : sinon pour le problème suivant --> Je souhaiterais pouvoir juste cliquer sur les NumInterventions(première colonne du datagrid) Comment je peux faire pour faire cela??, j'ai résolu ce problème par un "if".
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 28 févr. 2008 à 10:51
Hello Loic, alors en fait le souci avec l'evenement
CurrentCellChanged c'est qu'initialement le DataGrid selectionne la celule d'index (0,0) donc la premiere, pour que l'evenement se declenche il faut changer de cellule....
Pour éviter ce souci, il faut plutot implémenter l'evenement MouseDown du DataGrid, comme ceci :
loic20h28
Messages postés207Date d'inscriptionmardi 19 juin 2007StatutMembreDernière intervention22 février 20162 28 févr. 2008 à 11:06
Bonjour,
Merci pour cette information, cela fonctionne mais maintenant mon "if" qui doit me permettre de faire que la sélection de la première colonne ne fonctionne plus.
Donc je vois pas comment faire à présent.
Qu'appele-tu X et Y de : hti = monGrid.HitTest(e.X, e.Y); ??
lassaad83
Messages postés148Date d'inscriptionvendredi 28 avril 2006StatutMembreDernière intervention 1 décembre 2009 28 févr. 2008 à 11:39
e.X définie l'abscisse de la souris et e.Y définie l'ordonnée de la souris, je t'en ai deja parler plus haut en te disant qu'il fallait recuperer les coordonnées du click de la souris.
On doit utiliser la méthode HitTest pour déterminer sur quel élément de la grille le clic a été effectué et cela par l'intermédiaire de l'evenement MouseDown.
Bien entendu englobe le tout par ton If (dataGrid1.CurrentCell.ColumnNumber.Equals(0))
si tu veux restreindre le click uniquement sur la première colonne.
Vous n’avez pas trouvé la réponse que vous recherchez ?
loic20h28
Messages postés207Date d'inscriptionmardi 19 juin 2007StatutMembreDernière intervention22 février 20162 28 févr. 2008 à 14:43
Merci car ça fonctionne bien.
Merci pour tout.
J'ai une dernière question qui n'a rien avoir mais je voulais savoir si tu savais : en fait voila, j'ai un DateTimePicker qui correspond à la date de prise en charge.
J'aimerais pouvoir enregistrer dans la base "<NULL>" lorsque ce dernier à son 'checked=false'.
Donc j'ai effectué le code suivant :
// Si le dépositaire n'est pas renseigné
// alors <NULL> sera affiché dans la base
string DateCharge="<NULL>";
string Depo="<NULL>";
if(!Depositaire.Text.Equals("")){
Depo=Depositaire.Text;
DateCharge=DatePrisEnCharge.Text;
}
// Si la date de pise en charge n'est pas grisé.
if (DatePrisEnCharge.Checked ==
true){
commander new SqlCommand("UPDATE INTERVENTION SET IN_PRICHARG '" + DatePrisEnCharge.Text + "' WHERE IN_NUMINTER = '" + NumIntervention.Text + "'", connection);commander.ExecuteNonQuery();
}
// Sinon si la date de pise en charge est grisé.
else
if (DatePrisEnCharge.Checked ==
false){
commander new SqlCommand("UPDATE INTERVENTION SET IN_PRICHARG '" + DateCharge + "' WHERE IN_NUMINTER = '" + NumIntervention.Text + "'", connection);commander.ExecuteNonQuery();
}
Mon problème c'est que si le Checked=false, il m'enregistre bien dans la base"<NULL>" mais il m'affiche l'erreur suivante : "System.NullReferenceException:Erreur de syntaxe lors de la conversion d'une valeur datetime à partir d'une chaîne de caractères "
Si ta une idée pour qu'il m'affiche plus l'erreur, je suis preneur car je me prend la tête avec ça depuis quelque temps.
ATTENTION : jve po profiter de ta gentillesse non plus, juste si ta une idée.
merci d'avance et encore merci pour le reste!! C cool!!