Bonsoir a tous,
Need Help!!!!!!
Je voudrai savoir comment on fait pour faire une nouvelle insertion dans un DB.
Je travaille avec visual studio 2005, sql server 2005 et en C#.
D'avance merci pour votre aide
Clarissa
Version imprimable
Bonsoir a tous,
Need Help!!!!!!
Je voudrai savoir comment on fait pour faire une nouvelle insertion dans un DB.
Je travaille avec visual studio 2005, sql server 2005 et en C#.
D'avance merci pour votre aide
Clarissa
c'est du SQL : INSERT INTO <matable> (<champ1>, <champ2>, ...) VALUES (<valeurChamp1>, <valeurChamp2>, ...)
Je crois que vous devriez commencer par lire les tutos ADO.Net et ensuite seulement nous poser une question précise sur ce que vous n'arrivez pas à appliquer. Expliquez nous déjà ce que vous avez fait car là , on ne sait pas si votre souci est lié à l'accès aux données ou au DataBinding ou je ne sais quoi encore. De plus faites l'effort svp de respecter l'organisation des forums en postant au bon endroit, j'ai également dû éditer votre titre pour le rendre un peu plus conforme aux règles. Allons Clarissa2006, il faut vous reprendre ;)
Voici le code que jai mis :
mais il me donne une erreur pour le nom et le prix....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 string nom = tb_ajtNom.Text; float prix = Single.Parse (tb_ajtPrix.Text); string stringconnect = "Data Source=blabla;Initial Catalog=commande;Integrated Security=True"; SqlConnection connection = new SqlConnection(stringconnect); connection.Open(); SqlCommand command = new SqlCommand("insert into Produit (IdProduit,Denomination,Prix) values (4,nom,prix)",connection); SqlDataReader reader = command.ExecuteReader(); object[] row = null; while (reader.Read()) { if (row == null) row = new object[reader.FieldCount]; reader.GetValues(row); for (int i = 0; i < row.GetLength(0); i++) { if (row[i] != DBNull.Value) Console.Write(row[i]); else Console.Write("NULL"); if (i < row.GetUpperBound(0)) Console.Write("|"); } Console.WriteLine(); } reader.Close(); connection.Close();
Les tb_ajtNom et tb_ajtPrix vienne d'un formulaire....(textbox) et je vois pas pourquoi cela ne fonctionne pas....
Le Id =4 c just pour un essai je v mettre cela dans un get pour avoir le id suivant de la table.
Merci pour votre aide
:P On pourrait voir le message d'erreur stp ;)
La c'est vraiment du SQL (donc pas le bon forum)
Voici le bon code :
Code:"insert into Produit (IdProduit,Denomination,Prix) values (4,'nom','prix')"
bien vu pour les ' '. merci
maintenant voila autre chose message d'erreur >>
l'erreur surligne la ligne suivant :Citation:
Cannot insert explicit value for identity column in table 'Produit' when IDENTITY_INSERT is set to OFF.
toujours le meme code....Code:SqlDataReader reader = command.ExecuteReader();
Si IdProduit est en autoincrémentation, il faut pas le préciser dans le requête insert, il se fera tout seul, donc ça donne :
Code:"insert into Produit (Denomination,Prix) values ('nom','prix')"
Punese ca me soule toutes ces erreurs.....:roll:
Maintenant il en a une autre...:cry:
jCitation:
Error converting data type varchar to float.
e suppose que c'est lier a :Le textbox converti en float pour la DB, non?Code:float prix = Single.Parse(tb_ajtPrix.Text);
Merci pour ton aide precieuse!
tu veux in float, mais tu utilise single.parse ?
Fait plutot
A condition que le contenu du textbox soit bien convertible en float bien évidement.Code:float prix = float.Parse(tb_ajtPrix.Text);
Remarque : pour un prix (un montant), mieux vaut utiliser double. Garde float pour les taux (pourcentages)
>>A condition que le contenu du textbox soit bien convertible en float bien évidement.
Je comprend pas trop ce que tu veux dire par la...8O
(c'est de la que vient le probleme je pense...)
ben si dans ta textbos ta "mon papa aime les vieilles dames", ben tu va pas pouvoir convertir ça en : 12.50.
C'est un exemple bien sûr, je connais pas ton papa de toute façon :mouarf: :mouarf:
oui ok mais je fais cela comment???
Ya aussi c'est que jai mis une fonction pour pas pouvoir introduire des lettres dans ce textbox :
Code:
1
2
3
4
5
6
7 private void tb_ajtPrix_KeyPress(object sender, KeyPressEventArgs e) { if ((!char.IsDigit(e.KeyChar)) && (!char.IsControl(e.KeyChar))) { e.Handled = true; } }
Pour savoir si tu peux parser un string en float :
Code:
1
2
3
4
5 float prix; if (float.TryParse(tb_ajtPrix.Text, out prix)) // Cas ok tu peux, le résultat du convert est dans prix else // Cas ça n'a pas marché.
Cela ne fonctionne pas et ca donne toujours la meme erreur....:cry:
Ce code te retourne une erreur de type Error converting data type varchar to float ???Code:
1
2
3
4
5 float prix; if (float.TryParse(tb_ajtPrix.Text, out prix)) // Cas ok tu peux, le résultat du convert est dans prix else // Cas ça n'a pas marché.
Impossible, vu que ce message d'erreur provient de la BDD. Je crois que ton PB n'est pas de convertir le contenu de la textbox en float (quoi qu'il faille le faire), mais de la façon dont tu passes ta valeur float à ta requête SQL.
comment passer ma valuer float a ma requete alors?
ou alorsCode:INSERT INTO Produit (Denomination,Prix) VALUES ('nom','150.12')
je sais plus :PCode:INSERT INTO Produit (Denomination,Prix) VALUES ('nom',150.12)
ben je recupere cela d'un texbox dou tout le probleme......:?
?? pourquoi il autait-il un problème ?? Bon en gros ce que t'as à faire est :
ou alors :Code:
1
2
3
4
5
6
7
8
9
10
11 float prix; if (float.TryParse(tb_ajtPrix.Text, out prix)) // ajout dans la BDD string sql = "INSERT INTO Produit (Denomination,Prix) VALUES ('NomDuProduit','" + prix.ToString("n2") + "')"; // reste du code pour ajout en BDD else // Cas ça n'a pas marché. par exemple, envoi d'une exception throw new InvalidCastException("La valeur saisie comme prix n'est pas valide");
Je vois pas comment te macher plus le travail là.Code:
1
2
3
4
5
6
7
8
9
10
11 float prix; if (float.TryParse(tb_ajtPrix.Text, out prix)) // ajout dans la BDD string sql = "INSERT INTO Produit (Denomination,Prix) VALUES ('NomDuProduit'," + prix.ToString("n2") + ")"; // reste du code pour ajout en BDD else // Cas ça n'a pas marché. par exemple, envoi d'une exception throw new InvalidCastException("La valeur saisie comme prix n'est pas valide");