Bonjour tous le monde ,
Je suis en train de programmer une application sur C# avec sql server 2008 , et je suis confronté à un problème que j'ai essayé de contourner par tous les moyens mais j'y arrive pas et j'ai besoin d'aide mon problème est le suivant :
sur mon visual studio le type double est reconnu sous la forme (##,#) mais sur sql server le typle Float est reconnu sous la forme (##.#) alors quand j’exécute mon code avec des virgules je me retrouve avec une erreur "Column name or number of supplied values does not match table definition.", ce qui est normal car sql server met les virgules entre les champs et donc il prend la variable double comme 2 champs ex(remise =12,5 il prend 12 comme valeur et 5 comme une autre valeur ).
J'ai essayé de faire :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 string v = "0"; v = tb_pu_ht.Text.Replace(",", "."); pu_ht = Convert.ToDouble(v, new CultureInfo("en-US"));
Mais au niveau de SqlCommand il ne prend toujours que la virgule même si je remplace , par .
Voici le code C# :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 cmd.CommandText = "insert into ligne_devis values (" + pu_ht + "," + qte + ",'" + tb_conditionnement.Text + "'," + remise + "," + pu_net + "," + montant_ht + "," + montant_ttc + "," + cb_tva.Text + ")"; cmd.Connection = con; cmd.ExecuteNonQuery();
Et le code SQL :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CREATE TABLE [dbo].[ligne_devis]( [pu_ht] [float] NOT NULL, [qte] [int] NOT NULL, [conditionnement] [nvarchar](250) NULL, [remise] [float] NULL, [pu_net] [float] NULL, [montant_ht] [float] NOT NULL, [montant_ttc] [float] NULL, [tva] [float] NULL )
Merci de me donner votre avis sur ce point ou une solution
Partager