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.
Version imprimable
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:
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:command.Parameters.Add("@NomClt", SqlDbType.Char, 20);
mais si je fais l'espion sur : " SqlDbType.Char, 20 ", il m'affiche 20.Citation:
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:
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: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'estCode:
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 comboCode:
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:
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 surCode:if (rader.IsDBNull(0) == false)
cela ne fonctionne toujours pas.Code:
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: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: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:
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); } }
Non, il s'arrête au While.
Lorsque je glissa ma souris sur le 'Read()' deil me dit queCode:while(rader.Read())
Donc j'en déduis qu'il ne rentre pas plus dans le While.Citation:
rader.Read=rader.Read+0//method+offset
merci d'avance!!!
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:
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:
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(); }