BONSENT DE BONSOIR, il doit bien y avoir une solution a mon problème!!
mais lequel, jvais finir par péter un câble bonsent.
Si quelqu'un aune idée, n'hésiter pas.
merci d'avance!!
Version imprimable
BONSENT DE BONSOIR, il doit bien y avoir une solution a mon problème!!
mais lequel, jvais finir par péter un câble bonsent.
Si quelqu'un aune idée, n'hésiter pas.
merci d'avance!!
Devine ce que je suis entrainde faire?? chercher,réfléchir, j'ai tenter plein de chose mais rien.
Ca fais trop longtemps que j'y pense et que ça fonctionne pas et ce qui me ralenti dans mon stage.
Tu as peut être l'impression que je cherche pas mais désolé tu te trompe. Enfin chacun peux penser ce qu'il veux on est libre en 2008!!:lol::lol::lol:
cordialement.
Relis bien chaque ligne de ton code pour voir
mais j'arrête pas de le relire mon code, ca me donne même mal au crâne.
ta trouvé le problème??
la je vois vraiment pas pourquoi ça ne veux pas rentrer dans le while. J'ai beau enlever le 'if', c'est toujours pareil.....
J'en peux plus de chercher sans trouver, j'ai l'impression d'être bigleu ou d'être null!!
Suis sûr que j'en suis pas loin mais je vois vraiment pas.
tu sais utiliser les Dataset et les DataAdapter?
Pas trop désolé.Citation:
tu sais utiliser les Dataset et les DataAdapter?
Lorsque je test ma requête en faisant "ajout d'un espion", il m'affiche cela :
donc ça doit être bon.Citation:
"SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt" "SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT= @NomClt" string
cordialement
Comment veux-tu que je sache si la requête renvoie des lignes de la table??
Comment tu veux que je sache ce qu'il y a dans la value vu que mon code ne peux pas y accéder, car il me rejette au niveau du "while (rader.Read())" ??
merci d'avance
Lorsque je glisse sur Value de :il m'affiche :Code:command.Parameters["@NomClt"].Value
C'est tout ce qu'il me dit, bizarre je trouve.Citation:
Object SqlParameter.Value obtient ou définit la valeur du paramètre
Ensuite, pas trés claire :mais j'ai essayé la chose suivante :Citation:
Vérifié que la requête renvoie des ligne c executé ds Sql Server avec la valeur que tu as pri le soin de vérifier que c'étais bien la bonne (celle que tu sélectionne ...) ...
et ça m'affiche rien dans statut ce qui est pas normal car quand je fais :Code:
1
2
3
4 DECLARE @nomClt AS char SET @nomClt = 'gf' SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT = @nomClt
il me renvoi "pme" comme statut.Code:SELECT C_STATUCLT FROM CLIENT WHERE CLIENT.C_NOMCLT = 'gf'
merci d'avance
T'utilise toujours :
C'est moi qui t'avais donné cette ligne et SaumonAgile t'as dis que c'étais pas bon et une autre personne t'as donné il me semble la solution, t'as pas changé ?Code:command.Parameters["@NomClt"].Value = NomClient.Items.ToString();
Utilise alors une requete dans laquelle tu passeras toi meme la valeur, a la place du paramètre
Réponse à rad_hass : Si je faisça fonctionne encore moin. A par ça j'ai eu beau re-regardé la discussio,; j'ai rien vu d'autre.Code:command.Parameters["@NomClt"].Value = NomClient;
Réponse à fally : Tu me conseil d'abandonner et de faire des requêtes non paramétré, c'est ça???Si oui, j'y es pensé car ça me saoule trop mais faudra quand même que j'utilise les requête paramétré pour insérer dans ma base car ça doit fonctionner mieu??
merci d'avance!!
Oui essaie pour voir! apres tu liras des tutoriaux sur les requetes paramétrées pour améliorer tes requetes
Ben j'avais déja fais avec des requêtes simple et ça fonctionne sauf que pour l'enregistrement dans la base avec des requêtes simples, ça fonctionné pas.
Enfin ce que je vais essayer c'est requête sans paramètre (=simple) pour les affichages de combo.(ex:statuclient) et pour le remplissage dans ma base je ferais des requêtes paramétrés. (j'ai réussi pour un formulaire, donc il n'y a pas de raison!!lol)
Je te tiens au courant demain!!
merci pour tout
Bonjour tout le monde,
Dinc j'ai fais comme tu m'a dit fally c'est à dire pas de requête paramétré pour les requête 'SELECT'... mais par contre j'ai voulu essayer de faire des requêtes paramétrés pour insérer dans la base.
Ce qui me donne :
Le problème(et oui il y a toujours un problème!!:lol:) c'est qu'il me dit la chose suivante :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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109 private void Valider_Click(object sender, System.EventArgs e) { SqlConnection connection; SqlCommand command; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); try { SqlDataAdapter _MonDataAdapter; System.Data.DataTable _MaDataTable; // RECUPERER LA LISTE DES MACHINES QUI ONT POUR NUMERO NUMMACHINE.TEXT string RequeteSQL = "SELECT M_IDMAT FROM MACHINE WHERE M_IDMAT='" + NumMachine.Text + "'"; _MonDataAdapter = new SqlDataAdapter(RequeteSQL, connection); _MaDataTable = new DataTable(); _MonDataAdapter.Fill(_MaDataTable); // SI IL N'Y EN A PAS if (_MaDataTable.Rows.Count == 0) { connection.Open(); // Insertion des données dans la table 'MACHINE' command.Parameters["@NumMachine"].Value = NumMachine.Text.ToString(); command.Parameters["@NumClt"].Value = NumClt.Text.ToString(); command.Parameters["@NumContact"].Value = NumContact.Text.ToString(); command.Parameters["@NomMachine"].Value = NomMachine.Items.ToString(); command.Parameters["@ConfigMachine"].Value = ConfigMachine.Text.ToString(); command.Parameters["@NomUtMachine"].Value = NomUtMachine.Text.ToString(); command.Parameters["@RespUt"].Value = RespUt.Text.ToString(); command.Parameters["@RaisonInter"].Value = RaisonInter.Text.ToString(); string RequeteSql = ("INSERT INTO MACHINE(M_NUMCLT, M_IDMAT, M_NUMCTACT, M_NOMMAT, M_CONFMAT, M_NOMUTIL, M_RAP_RESP, M_RESINTER) VALUES('" + @NumClt + "', '" + @NumMachine + "', '" + @NumContact + "','" + @NomMachine + "', '" + @ConfigMachine + "', '" + @NomUtMachine + "', '" + @RespUt + "', '" + @RaisonInter + "'"); command = new SqlCommand(RequeteSql, connection); command.Parameters.Add("@NumMachine", SqlDbType.Int, 13); command.Parameters.Add("@NumClt", SqlDbType.VarChar, 13); command.Parameters.Add("@NumContact", SqlDbType.VarChar, 13); command.Parameters.Add("@NomMachine", SqlDbType.VarChar, 50); command.Parameters.Add("@ConfigMachine", SqlDbType.VarChar, 150); command.Parameters.Add("@NomUtMachine", SqlDbType.Char, 50); command.Parameters.Add("@RespUt", SqlDbType.Char, 50); command.Parameters.Add("@RaisonInter", SqlDbType.VarChar, 250); command.ExecuteNonQuery(); // Insertion des données dans la table 'INTERVENTION' command.Parameters["@NumInter"].Value = NumIntervention.Text.ToString(); command.Parameters["@NumClt"].Value = NumClt.Text.ToString(); command.Parameters["@NumClt"].Value = NumClt.Text.ToString(); command.Parameters["@NumMachine"].Value = NumMachine.Text.ToString(); command.Parameters["@RaisonInter"].Value = RaisonInter.Text.ToString(); command.Parameters["@Dépositaire"].Value = Dépositaire.Items.ToString(); command.Parameters["@Réceptionneur"].Value = Réceptionneur.Items.ToString(); command.Parameters["@DatePrisEnCharge"].Value = DatePrisEnCharge.Text.ToString(); RequeteSql = ("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + @NumInter + "', '" + @NumClt + "', '" + @NumClt + "','" + @NumMachine + "', '" + @RaisonInter + "', '" + @Dépositaire + "', '" + @Réceptionneur + "', '" + @DatePrisEnCharge + "'"); command = new SqlCommand(RequeteSql, connection); command.Parameters.Add("@NumInter", SqlDbType.VarChar, 15); command.Parameters.Add("@NumClt", SqlDbType.VarChar, 13); command.Parameters.Add("@NumClt", SqlDbType.VarChar, 13); command.Parameters.Add("@NumMachine", SqlDbType.Int, 13); command.Parameters.Add("@RaisonInter", SqlDbType.VarChar, 250); command.Parameters.Add("@Dépositaire", SqlDbType.Char, 50); command.Parameters.Add("@Réceptionneur", SqlDbType.Char, 20); command.Parameters.Add("@DatePrisEnCharge", SqlDbType.DateTime, 8); command.ExecuteNonQuery(); } else if (_MaDataTable.Rows.Count > 0) { // Insertion des données dans la table 'INTERVENTION' command.Parameters["@NumInter"].Value = NumIntervention.Text.ToString(); command.Parameters["@NumClt"].Value = NumClt.Text.ToString(); command.Parameters["@NumClt"].Value = NumClt.Text.ToString(); command.Parameters["@NumMachine"].Value = NumMachine.Text.ToString(); command.Parameters["@RaisonInter"].Value = RaisonInter.Text.ToString(); command.Parameters["@Dépositaire"].Value = Dépositaire.Items.ToString(); command.Parameters["@Réceptionneur"].Value = Réceptionneur.Items.ToString(); command.Parameters["@DatePrisEnCharge"].Value = DatePrisEnCharge.Text.ToString(); string RequeteSql = ("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + @NumInter + "', '" + @NumClt + "', '" + @NumClt + "','" + @NumMachine + "', '" + @RaisonInter + "', '" + @Dépositaire + "', '" + @Réceptionneur + "', '" + @DatePrisEnCharge + "'"); command = new SqlCommand(RequeteSql, connection); command.Parameters.Add("@NumInter", SqlDbType.VarChar, 15); command.Parameters.Add("@NumClt", SqlDbType.VarChar, 13); command.Parameters.Add("@NumClt", SqlDbType.VarChar, 13); command.Parameters.Add("@NumMachine", SqlDbType.Int, 13); command.Parameters.Add("@RaisonInter", SqlDbType.VarChar, 250); command.Parameters.Add("@Dépositaire", SqlDbType.Char, 50); command.Parameters.Add("@Réceptionneur", SqlDbType.Char, 20); command.Parameters.Add("@DatePrisEnCharge", SqlDbType.DateTime, 8); command.ExecuteNonQuery(); } } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { connection.Close(); } }
pour le @NumInter correspondant au code :Citation:
C:\Documents and Settings\Propriétaire\Mes documents\Visual Studio Projects\SuiviClient_Distrib'Info\NouvelleIntervention.cs(1024): Le nom 'NumInter' n'existe pas dans la classe ni dans l'espace de noms 'SuiviClient_Distrib_Info.NouvelleIntervention'
Faut savoir que le 'NumIntervention' est un label dans mon application.Code:string RequeteSql = ("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES('" + @NumInter + "', '" + @NumClt + "', '" + @NumClt + "','" + @NumMachine + "', '" + @RaisonInter + "', '" + @Dépositaire + "', '" + @Réceptionneur + "', '" + @DatePrisEnCharge + "'");
merci d'avance pour votre aide!!
Je viens de lire le fil de cette discussion et depuis le début, je me demande si t'es pas un petit malin qui essaye de faire tourner en bourrique les personnes qui s'égosillent à t'expliquer ton erreur.
Finalement, on se rend compte que non.
Je pense que tu te fous vraiment de ceux qui veulent t'aider et tu attends que quelqu'un te donne la fichu solution à ton problème.
A aucun moment, tu n'as consulté la documentation !!
Il y a quelqu'un qui à même eu la gentillesse de t'expliquer comment fonctionnne un Combobox et comment récupérer les valeurs qui t'interessent (+ un lien vers MSDN)
Car, il faut le dire, ton problème vient de là depuis le début.
Essaye de comprendre comment fonctionne un ComboBox et tu resoudra ton problème...
Je suis peut être un peu dur avec toi, mais si tu n'arrives pas à résoudre un problème aussi simple et remettant en cause tes méthodes de travail, tu n'y arrivera jamais.
Si tu n'y arrives toujours pas seul, je pense qu'il va falloir te remettre en question et te demander si tu as vraiment fait pour la programmation...
Je confirme tu es dur avec moi et en plus désolé mais tu es faux sur une bonne partie de la ligne c'est à dire que j'ai lu les tutaux que l'on ma donné, j'ai lu des livre mainte et une foi et j'ai essayé tout ce que les gens m'on dit d'essayer mais c'est pas de ma faute si je n'y arrive pas.
"Dans la vie on est fais pour ce que l'on veux mais faut s'en donner les moyens" --> certe j'ai des difficultés en programmation mais je fais tout pour m'en sortir et c'est pas des gens qui me dise des choses m"chante qui me ferons changer mon point de vue ca je me bat depuis tant d'année.
Donc j'ai lu les tutoriels... désolé de te déçevoir mais tu juge mal les gens!!
en + je déteste que l'on me juge surtout quand on connais pas la vérité. Car je lit les tutoriels... faut pas croire mais dans la vie tout le monde ne s'en sors pas du premier coup, y'en a (dont moi) qui doive ramer des années pour ensuite s'en sortir et montrer au gens qui les jugers qu'ils avais tord!!
cordialement!!
Désolé, mais je préfère te mettre en garde pour ton avenir.
Si tu as lu tous tout ces tutoriels (et compris) comme tu le prétends et que tu n'es pas capable de comprendre le fonctionnement du ComboBox (qui n'est pas d'une difficulté particulière) que va-t-il se passer quand il va falloir que tu utilises des objets plus complexes ??... Tu crois que ce forum va résoudre tous les problèmes que tu vas rencontrer ?? ... car c'est comme cela que tu procèdes depuis le début si je regarde l'historique de ton parcours depuis que tu es inscrit sur ce forum...
Remet-toi en question et pose-toi la question : Ai-je vraiment bien lu et compris ces tutoriaux... ?
Déja je suis désolé mais tu t'égard dans le sujet de cette discussion.
Puis si tu es juste là pour descendre les gens, leur mettre le moral a "zéro" pour toute la journée ou autre laisse tombé car tu n'y arrivera pas avec moi!!
Puis je procéde, je suis ma vie comme je l'entend je te signale. Tu ne vi pas ma vie!!
Je te signale au passage qu'il me reste que 3 semaine pour faire mon projet donc je fais de la manière que je peux!!
Bref je vois pas pourquoi je te répond car tu es la juste pour me casser le moral, pour m'enterrer......... Pzeut être que j'ai des difficulté mais : "c'est en esayant, faisant des erreurs que l'on s'en sors dans la vie"
Donc j'ai changé ma façon d'effectuer ma requête, ce qui donne :
mais lorsque j'arrive au niveau de : "cmd.ExecuteNonQuery();", je ne comprend pas mais il m'affiche l'erreur suivante :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 SqlConnection connection; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); SqlParameter paramNInter = new SqlParameter("@NumInter", SqlDbType.VarChar); paramNInter.Value = NumIntervention; SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar); paramNClt.Value = NumClt; SqlParameter paramNClt1 = new SqlParameter("@NumClt", SqlDbType.VarChar); paramNClt1.Value = NumClt; SqlParameter paramNMat = new SqlParameter("@NumMachine", SqlDbType.Int); paramNMat.Value = NumMachine; SqlParameter paramResInter = new SqlParameter("@RaisonInter", SqlDbType.VarChar); paramResInter.Value = RaisonInter; SqlParameter paramDepo = new SqlParameter("@Dépositaire", SqlDbType.Char); paramDepo.Value = Dépositaire; SqlParameter paramRecep = new SqlParameter("@Réceptionneur", SqlDbType.Char); paramRecep.Value = Réceptionneur; SqlParameter paramDPrisCharg = new SqlParameter("@DatePrisEnCharge", SqlDbType.DateTime); paramDPrisCharg.Value = DatePrisEnCharge; string sql = string.Format("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})", paramNInter.ParameterName, paramNClt.ParameterName, paramNClt1.ParameterName, paramNMat.ParameterName, paramResInter.ParameterName, paramDepo.ParameterName, paramRecep.ParameterName, paramDPrisCharg.ParameterName); SqlCommand cmd = new SqlCommand(sql.ToString(), connection); cmd.Parameters.Add(paramNInter); cmd.Parameters.Add(paramNClt); cmd.Parameters.Add(paramNClt1); cmd.Parameters.Add(paramNMat); cmd.Parameters.Add(paramResInter); cmd.Parameters.Add(paramDepo); cmd.Parameters.Add(paramRecep); cmd.Parameters.Add(paramDPrisCharg); connection.Open(); cmd.ExecuteNonQuery();
(encore cette erreure)Citation:
Une exception non gérée du type 'System.InvalidCastException' s'est produite dans system.data.dll
Informations supplémentaires*: L'objet doit implémenter IConvertible.
O fet, lorsque l'on a un champ de type Numéric dans la base, quel type doit-on lui attribuer à "SqlDbType"??
merci d'avance POUR VOTRE AIDE!!
Voila j'ai réglé certain problème dans mon code, ce qui donne a présent :
mais je souhaiterais savoir plusieurs choses :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 private void Valider_Click(object sender, System.EventArgs e) { SqlConnection connection; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); connection.Open(); try { SqlParameter paramNInter = new SqlParameter("@NumInter", SqlDbType.VarChar, 15); paramNInter.Value = NumIntervention; SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt; SqlParameter paramNClt1 = new SqlParameter("@NumClt1", SqlDbType.VarChar, 13); paramNClt1.Value = NumClt; SqlParameter paramNMat = new SqlParameter("@NumMachine", SqlDbType.Int, 13); paramNMat.Value = NumMachine; SqlParameter paramResInter = new SqlParameter("@RaisonInter", SqlDbType.VarChar, 250); paramResInter.Value = RaisonInter; SqlParameter paramLieInter = new SqlParameter("@LieInter", SqlDbType.Text); paramLieInter.Value = LieuInter.SelectedItem.ToString(); SqlParameter paramDepo = new SqlParameter("@Depositaire", SqlDbType.Char, 50); paramDepo.Value = Dépositaire.SelectedItem.ToString(); SqlParameter paramRecep = new SqlParameter("@Receptionneur", SqlDbType.Char, 20); paramRecep.Value = Réceptionneur.SelectedItem.ToString(); SqlParameter paramDPrisCharg = new SqlParameter("@DatePrisEnCharge", SqlDbType.DateTime, 8); paramDPrisCharg.Value = DatePrisEnCharge.Format; string sql = string.Format("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_LIEINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})", paramNInter.ParameterName, paramNClt.ParameterName, paramNClt1.ParameterName, paramNMat.ParameterName, paramResInter.ParameterName, paramLieInter.ParameterName, paramDepo.ParameterName, paramRecep.ParameterName, paramDPrisCharg.ParameterName); SqlCommand cmd = new SqlCommand(sql.ToString(), connection); cmd.Parameters.Add(paramNInter); cmd.Parameters.Add(paramNClt); cmd.Parameters.Add(paramNClt1); cmd.Parameters.Add(paramNMat); cmd.Parameters.Add(paramResInter); cmd.Parameters.Add(paramLieInter); cmd.Parameters.Add(paramDepo); cmd.Parameters.Add(paramRecep); cmd.Parameters.Add(paramDPrisCharg); cmd.ExecuteNonQuery(); } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { connection.Close(); } }
* Lorsqu'un champ dans la base est de type numéric, quelle type dois-je donner au paramètre au niveau du 'sqlDbType' ???
* Le NumIntervention est un label dans mon application donc pour qu'il prenne la valeur, que dois-je mettre?? pour l'instant j'ai :* La DatePrisCharg me renvoie "02/15/2008", comment puis-je faire pour que ça devienne "12/02/2008"??Code:
1
2 SqlParameter paramNInter = new SqlParameter("@NumInter", SqlDbType.VarChar, 15); paramNInter.Value = NumIntervention;
Je sait qu'il existe Format(mais ça renvoie short) et il existe FormatChanged mais il me dise qu'il faut que je le mette à guche d'un = ou d'un +, comment puis-je faire dans mon programme??Code:
1
2 SqlParameter paramDPrisCharg = new SqlParameter("@DatePrisEnCharge", SqlDbType.DateTime, 8); paramDPrisCharg.Value = DatePrisEnCharge.Format;
merci d'avance!!
Pourquoi avoir un champ de type "Numeric"? utilise "int" sinon je sais pas quel SqlDbType utiliserCitation:
mais je souhaiterais savoir plusieurs choses :
* Lorsqu'un champ dans la base est de type numéric, quelle type dois-je donner au paramètre au niveau du 'sqlDbType' ???
* Le NumIntervention est un label dans mon application donc pour qu'il prenne la valeur, que dois-je mettre?? pour l'instant j'ai :
Code :
SqlParameter paramNInter = new SqlParameter("@NumInter", SqlDbType.VarChar, 15);
paramNInter.Value = NumIntervention;* La DatePrisCharg me renvoie "02/15/2008", comment puis-je faire pour que ça devienne "12/02/2008"??
Code :
SqlParameter paramDPrisCharg = new SqlParameter("@DatePrisEnCharge", SqlDbType.DateTime, 8);
paramDPrisCharg.Value = DatePrisEnCharge.Format;Je sait qu'il existe Format(mais ça renvoie short) et il existe FormatChanged mais il me dise qu'il faut que je le mette à guche d'un = ou d'un +, comment puis-je faire dans mon programme??
merci d'avance!!
Pour utiliser le label , il y a sa propriété TextPour la date c'est normal , t'as pas a t'inquiter il enregitre néanmoins "12/02/2008" dans la baseCode:mon_label.Text
J'ai encore un problème : "L'objet doit implémenter IConvertible.", a quoi peut-ilm être dut ce problème??
Faut savoir que mes value, fonctionne tous a présent.
Lorsque je glisse ma souris sur : 'string.Format', j'ai "string.Format = <overloaded>
Lorsque je glisse ma souris sur : 'parmNInter', j'ai "paramNInter = {System.Data.SqlClient.SqlParameter}"
Lorsque je glisse ma souris sur : 'ParameterName', j'ai "parmNInter.'ParameterName = @..."
Lorsque je glisse sur : 'cmd.Parameters.Add', j'ai "cmd.Parameters.Add = <overloaded>
Je pense que c'est pas normal, mais je vois pas comment rectifier ces problèmes, peux tu m'aider s'il te plais??
le code :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
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 private void Valider_Click(object sender, System.EventArgs e) { SqlConnection connection; connection = new SqlConnection("Data Source=DIST-5B8D87E3A9;Initial Catalog=DistribInfo;Integrated Security=SSPI"); connection.Open(); try { SqlParameter paramNInter = new SqlParameter("@NumInter", SqlDbType.VarChar, 15); paramNInter.Value = NumIntervention.Text.ToString(); SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt; SqlParameter paramNClt1 = new SqlParameter("@NumClt1", SqlDbType.VarChar, 13); paramNClt1.Value = NumClt; SqlParameter paramNMat = new SqlParameter("@NumMachine", SqlDbType.Int, 13); paramNMat.Value = NumMachine; SqlParameter paramResInter = new SqlParameter("@RaisonInter", SqlDbType.VarChar, 250); paramResInter.Value = RaisonInter; SqlParameter paramLieInter = new SqlParameter("@LieInter", SqlDbType.Text); paramLieInter.Value = LieuInter.SelectedItem.ToString(); SqlParameter paramDepo = new SqlParameter("@Depositaire", SqlDbType.Char, 50); paramDepo.Value = Dépositaire.SelectedItem.ToString(); SqlParameter paramRecep = new SqlParameter("@Receptionneur", SqlDbType.Char, 20); paramRecep.Value = Réceptionneur.SelectedItem.ToString(); SqlParameter paramDPrisCharg = new SqlParameter("@DatePrisEnCharge", SqlDbType.DateTime, 8); paramDPrisCharg.Value = DatePrisEnCharge; string sql = string.Format("INSERT INTO INTERVENTION(IN_NUMINTER, IN_NUMCLT, IN_M_NUMCLT, IN_IDMAT, IN_RESINTER, IN_LIEINTER, IN_DEPOMAT, IN_RECEPMAT, IN_PRICHARG) VALUES({0}, {1}, {2}, {3}, {4}, {5}, {6}, {7})", paramNInter.ParameterName, paramNClt.ParameterName, paramNClt1.ParameterName, paramNMat.ParameterName, paramResInter.ParameterName, paramLieInter.ParameterName, paramDepo.ParameterName, paramRecep.ParameterName, paramDPrisCharg.ParameterName); SqlCommand cmd = new SqlCommand(sql.ToString(), connection); cmd.Parameters.Add(paramNInter); cmd.Parameters.Add(paramNClt); cmd.Parameters.Add(paramNClt1); cmd.Parameters.Add(paramNMat); cmd.Parameters.Add(paramResInter); cmd.Parameters.Add(paramLieInter); cmd.Parameters.Add(paramDepo); cmd.Parameters.Add(paramRecep); cmd.Parameters.Add(paramDPrisCharg); cmd.ExecuteNonQuery(); } catch(Exception ex) { MessageBox.Show(ex.Message); } finally { connection.Close(); } }
NumClt, c'est quoi ? Un entier ? Une chaîne ? Un contrôle ?Code:
1
2 SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt;
NumClt dans le code correspond a une TextBox dans mon application.
C'est pareil pour NumMachine et RaisonInter
Pourquoi cette question??
Ben j'ai beau rajouter .Text derrière, j'ai toujours le même problème.
Je vois vraiment pas comment faire pour résoudre mon problème.
D'après vous, le message "L'objet doit implémenter IConvertible" provient d'ou??
Moi je me demande si ça provient pas de ce dont j'ai parlé au sujet numéro #147 ???
merci d'avance!!
Je vais tenter d'être un peu pédagogue. vendredi soir... :)
Ton appli, elle est faite d'une partie graphique (combo, textbox, etc.), et elle est liée à une source de données qui est ta base. Ces deux univers n'ont rien en commun : on peut faire des applis graphiques sans base, et des bases sans interface graphique.
Ce que tu cherches à faire, c'est que les deux communiquent. Hors ces deux univers ne parlent pas le même langage : l'un, c'est du graphics, du onLoad, du onClick. L'autre, c'est du SQL, des commandes paramétrées, et j'en passe.
Tu comprendras donc qu'en faisantTu dis à ton moteur de base de donnée "salut gars, je te file une commande, elle a besoin de paramètres, ok, tiens, prends cette textbox en paramètre."Code:
1
2 SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt;
Evidemment, ça marche pas.
Le lien entre les deux, ce sont des types de base. "string", "int", etc. Parce que les développeurs de ADO.Net font gentiment le lien entre des types PUR C# comme string, int et le reste, en types que ta base va comprendre.
Ton boulot se résume donc à récupérer les valeurs depuis ton interface graphique DANS DES TYPES DE BASE, et les injecter dans les SQLparameter, command, etc.
nota : quand j'écris en majuscule, je ne hurle pas, j'insiste. :)
Je suis d'accord sur le fait que les 2 ne parle pas le même langage.
Je sais bien que mon travail c'est de :c'est ce que je fais avec mon code, non??Citation:
Ton boulot se résume donc à récupérer les valeurs depuis ton interface graphique DANS DES TYPES DE BASE, et les injecter dans les SQLparameter, command, etc.
pour ton information, je l'ai modifié en :Code:
1
2 SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt;
merci d'avance!!Code:
1
2 SqlParameter paramNClt = new SqlParameter("@NumClt", SqlDbType.VarChar, 13); paramNClt.Value = NumClt.Text.ToString();
Oui j'ai tout a fais compris pourquoi. C'étais une erreure de ma pars car je le savais. Mais le problème c'est que ça fonctionne toujours pas. Mais je vois pas comment faire pour que ça fonctionne?? !!
merci d'avance!!
Ca, ca n'a aucune raison de peter a la compilation. Je doute fort que ca soit le cas.Code:paramNClt.Value = NumClt.Text;
http://msdn2.microsoft.com/fr-fr/lib...rs(VS.80).aspx
http://msdn2.microsoft.com/fr-fr/lib...ue(VS.80).aspx
Tu iras bien plus vite en fouillant la MSDN.
Salut,
je n'est jamais dit que c'étais ça qui péter a la compilation. :Lorsque je test les Value, cela me renvoie parfaitement les valeur voulus.Code:paramNClt.Value = NumClt.Text;
C'est après que cela se gatte :je me demande si cela ne vient pas de cela?? (je sais pas comment cela se pourrait-il mais bon l'informatique est parfois un grand mystère pour l'homme.)Citation:
J'ai encore un problème : "L'objet doit implémenter IConvertible.", a quoi peut-ilm être dut ce problème??
Faut savoir que mes value, fonctionne tous a présent.
Lorsque je glisse ma souris sur : 'string.Format', j'ai "string.Format = <overloaded>
Lorsque je glisse ma souris sur : 'parmNInter', j'ai "paramNInter = {System.Data.SqlClient.SqlParameter}"
Lorsque je glisse ma souris sur : 'ParameterName', j'ai "parmNInter.'ParameterName = @..."
Lorsque je glisse sur : 'cmd.Parameters.Add', j'ai "cmd.Parameters.Add = <overloaded>
Je pense que c'est pas normal, mais je vois pas comment rectifier ces problèmes
Le message suivant : "L'objet doit implémenter IConvertible" lors d'un enregistrement dans la base. Quelqu'un la déja rencontré??
Si oui, comment avez-vous fais pour vous en débarasser??
D'après vous d'ou vient le problème car j'ai beau chercher, réléchir(j'ai passé mon week-end a ça alors que j'étais en repos) mais je vois vraiment pas comment faire.
AIDEZ-MOI je vous en pris!! j'en peux vraiment plus!!
merci d'avance!!
Bon je ne viens pas ici pour te donner la solution car je n'ai pas l'habitude de travailler sur les bases de données, je ne viens pas te juger non plus car tes profs s'en chargeront à la fin de ton stage et ils sont mieux placé que moi pour le faire.
Je viens juste t'apporter quelque conseil :
1) Change de langage, commence plutot par le C, parce que lorsque tu dit :je ne vois pas pourquoi tu fais du C# qui est entièrement orienté objet. Le C lui n'est pas un langage orienté objet, tu pourras donc apprendre les bases de la programmation.Citation:
certe c'est peut être mieu les instances mais je souhaite pas programmer avec de la programmation objet car je suis pas trés performant dans ce domaine pour le moment.
2) Apprend la POO (programmation orienté objet). Je sais que c'est pas simple à comprendre pour tout le monde, j'ai eu un binome dans mon école qui n'était aps particulièrement mauvais, et qui travaillais, mais il avait beaucoup de mal à comprendre les notions de POO. Cela demande une capacité d'abstraction que tout le monde n'a pas. Mais t'inquiète cela s'apprend, c'est plus ou moins long. Je te conseille d'apprendre la POO avec un langage comme le C++ (surtout si tu as fais du C avant) ou autre mais pas directement C# et JAVA.
En effet, c'est deux derniers sont des langages managés, qui te caches des choses (les pointeurs) difficile à comprendre mais qui je pense sont indispensable à connaitre pour réellement apréhender la POO.
3) Ensuite fais du JAVA et du .Net, au moins un peu, pour avoir une idée de ce que c'est et comment cela fonctionne. Fais ton choix ensuite pour le perfectionnement des langages : C#.Net, J2EE très demandé aujourd'hui, mais encore pas mal de projet en C/C++, mais bon c pas l'avenir.
En ce qui concerne ton stage je ne vois que trois issues :
1) L'echec, mais bon ce n'est pas ce que tu souhaites.
2) Tu arrives à faire fonctionner ton programme par miracle. Faut être réaliste, et plutot tu te rendras compte de l'impasse dans laquelle tu te trouves, plus vite tu chercheras des mesures àdéquate pour l'éviter ou limiter la casse.
Entre une personne qui essaye, échoue, et avoue qu'elle ne sais pas faire, et une autre qui essaye, echoue, mais continue jusqu'à ce prendre la mur, la première est en avance sur la deuxième, car en admettant la réalité, elle à franchis un pas de plus vers son objectif final : Apprendre, Comprendre, Maitriser ce qu'elle ne connais pas, ne comprend pas, ne maitrise pas aujourd'hui.
3) Trouver un développeur qui fait ton projet à ta place.
Tu veux la 4) solution : Réussir toit même ce programme. Pas de miracle, il faut que trouves des cours et apprennes en accélérer la Programmation, puis la POO pour combler ton retard actuelle.
Bon courage pour la suite.