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
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
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
Voici le code que jai mis :
mais il me donne une erreur pour le nom et le prix....
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 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
On pourrait voir le message d'erreur stp
Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles
La c'est vraiment du SQL (donc pas le bon forum)
Voici le bon code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part "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 :Cannot insert explicit value for identity column in table 'Produit' when IDENTITY_INSERT is set to OFF.
toujours le meme code....
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part "insert into Produit (Denomination,Prix) values ('nom','prix')"
Punese ca me soule toutes ces erreurs.....
Maintenant il en a une autre...
jError converting data type varchar to float.
e suppose que c'est lier a :Le textbox converti en float pour la DB, non?
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part 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...
(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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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....
Ce code te retourne une erreur de type Error converting data type varchar to float ???
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 alors
Code : Sélectionner tout - Visualiser dans une fenêtre à part INSERT INTO Produit (Denomination,Prix) VALUES ('nom','150.12')
je sais plus
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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");
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager