Je viens d'essayer ce que tu ma donné mais le problème c'est que ça m'affiche toujours rien dans la combo StatuClient.
Je comprend plus du tout comment faire.
aidez-moi s'il vous plais.
Je viens d'essayer ce que tu ma donné mais le problème c'est que ça m'affiche toujours rien dans la combo StatuClient.
Je comprend plus du tout comment faire.
aidez-moi s'il vous plais.
Dis nous tu exécutes ce code là derriere quel évenement?
Derrière la combo NomClient.
pourquoi?? je devrais l'exécuter derrière quel événement d'après toi??
merci d'avance!!
tu veux afficher le statut du client sélectionné alors tu devras exécuter ce code juste après qu'on ait choisit un client et a chaque fois!
Ben le combo NomClient est rempli lorsque j'ouvre la fenêtre.
Donc pour ça que j'ai mit mon code lors de l'exécution de la combo NomClient car cette combo elle est rempli.
Sinon je vois pas ou le mettre d'autre pars.
merci d'avance!!
Ta combo client etant deja remplie je suppose qu'il y a un nom de client sélectionné; il faut donc en meme temps charger la combo statut pour afficher le statut du client. Mets le code alors là où tu charges la combo client et aussi derriere l'evenement SelectedIndexChange de ta combo client
comme celà chaque fois qu'on change de client il affiche le statut qui lui correspond
Bonjour,
Je viens de mettre mon code ou je charge la combo client mais c'est toujours pareils c'est à dire que le statut ne s'affiche pas.
Je vois pas pourquoi.
Est-ce le code ou est-ce autre chose?? !!
Fais une éxécution pas à pas de ton code et vois les résultats que celà renvoit (mets un breakpoint)
voici le code suivant :
Donc j'ai fais un point d'arrêt sur :
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 .... connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); connection.Open(); string requete = ("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt"); command = new SqlCommand(requete,connection); command.Parameters.Add("@NomClt", SqlDbType.Char, 20); command.Parameters["@NomClt"].Value = NomClient.Items.ToString(); rader = command.ExecuteReader(); try { while (rader.Read()) { string value = null; // On part du principe que le champ à l'index 0 est de type char dans la base if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value); } } } catch(Exception ee) { MessageBox.Show(ee.Message); } finally { connection.Close(); }et que je fais un espion sur " SqlDbType.Char " alors il me dit la chose suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part command.Parameters.Add("@NomClt", SqlDbType.Char, 20);mais si je fais l'espion sur : " SqlDbType.Char, 20 ", il m'affiche 20.SqlDbType.Char erreur*: l'identificateur 'SqlDbType' est hors de portée
Par contre, si je met des points d'arrêt sur :il n'y va pas c'est à dire qu'il se stop sur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 string value = null; // On part du principe que le champ à l'index 0 est de type char dans la base if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value);je vois pas quoi te dire de plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part while (rader.Read())
merci d'avance!!
Tu veux que je t'envoye ma base SqlServer (enfin la structure) + l'application pour que tu opére mieux le problème??
Cordialement.
Tu veux dire qu'il ne rentre pas dans ceci :
Si non c'est normal qu'il ne remplisse pas la combo statut parce que c'est
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value); }
qui remplit en réalité la combo
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 StatutClient.Items.Add(value);
Voila tout à fais, j'ai pas l'impression qui rentre dansmais il me dit rien du tout, donc je ne sais pas pourquoi.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value); }
merci d'avance!!
Par contre si je retire le, et que je met un point d'arrêt sur
Code : Sélectionner tout - Visualiser dans une fenêtre à part if (rader.IsDBNull(0) == false)cela ne fonctionne toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value);
Je comprend vraiment pas comment cela se fait-il.
merci d'avance!!
Il ne renvoit pas d'erreur?
Si non mets un point d'arrêt sur
et voit la valeur de "value".
Code : Sélectionner tout - Visualiser dans une fenêtre à part value = rader["C_STATUCLT"].ToString();
Lorsque je fais un point d'arrêt sur :il se passe rien c'est a dire qu'il ne s'arrête pas dessus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part value = rader["C_STATUCLT"].ToString();
Donc quand je glisse ma souris sur le "value" il me dit : "(variable locale)string value"
C tout.
Je comprend vraiment rien là.
Est ce qu'il rentre dans le While ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 while (rader.Read()) { string value = null; // On part du principe que le champ à l'index 0 est de type char dans la base if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value); } }
Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.
Twitter Blog Mon site
Mon article sur l'agilité
Non, il s'arrête au While.
Lorsque je glissa ma souris sur le 'Read()' deil me dit que
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(rader.Read())Donc j'en déduis qu'il ne rentre pas plus dans le While.rader.Read=rader.Read+0//method+offset
merci d'avance!!!
Vérifie ce que tu récupere ici :
Et ensuite que ta requête renvoie quelques choses avec cette valeur ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part command.Parameters["@NomClt"].Value
Échouer, c'est avoir la possibilité de recommencer de manière plus intelligente.
Twitter Blog Mon site
Mon article sur l'agilité
Il y a quelque chose que je ne comprend pas.
Lorsque je test mon application, il arrive aau While.... et ensuite il me demande de remplir le NomClient. Il devrais me le demander avant : la preuve avec le code :
Cordialement.
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
55
56
57
58
59
60 public NouvelleIntervention() { InitializeComponent(); SqlConnection connection; SqlCommand command; SqlDataReader rader; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); command = new SqlCommand("SELECT C_NOMCLT FROM CLIENT", connection); connection.Open(); try { rader = command.ExecuteReader(); try { while (rader.Read()) NomClient.Items.Add(Convert.ToString(rader["C_NOMCLT"])); } finally { rader.Close(); } } finally { connection.Close(); } StatuClient.Visible=true; NumClt.Visible=true; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); connection.Open(); string requete = ("SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt"); command = new SqlCommand(requete,connection); command.Parameters.Add("@NomClt", SqlDbType.Char, 20); command.Parameters["@NomClt"].Value = NomClient.Items.ToString(); rader = command.ExecuteReader(); try { while (rader.Read()) { string value = null; // On part du principe que le champ à l'index 0 est de type char dans la base if (rader.IsDBNull(0) == false) { value = rader["C_STATUCLT"].ToString(); StatutClient.Items.Add(value); } } } catch(Exception ee) { MessageBox.Show(ee.Message); } finally { connection.Close(); } }
Loic V.
Voila je vois vraiment pas comment régler mon prblème donc je vous envoi ci-joint un lien ou se situe mon projet : http://dl.free.fr/alvqTWEY5/Nouveaudossier.rar
Le fichier .sql correspond a ma base SqlServer2000.
Le dossier correspond a mon application. Mon problème se situe au niveau de la fenêtre s'intitulant 'NouvelleIntervention' puis le code se situe dans 'public NouvelleIntervention'.
A savoir, lorsque je fais la même chose (afficher le statut du client aprés avoir choisi le nomclient) avec une requête non paramétré, le code est le suivant :merci d'avance!!
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 SqlCommand command; SqlConnection connection; SqlDataReader rader; // Code permettant d'afficher // le statut du client choisit connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); command = new SqlCommand("SELECT C_STATUCLT FROM CLIENT WHERE C_NOMCLT='" + NomClient.Text + "'", connection); connection.Open(); try { rader = command.ExecuteReader(); try { while (rader.Read()) StatutClient.Text = Convert.ToString(rader["C_STATUCLT"]); } finally { rader.Close(); } } finally { connection.Close(); }
Partager