Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une
valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "."
est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
globalisation via la classe CultureInfo, d'apporter une modification au
niveau du fichier de configuration avec l'élément globalization et de
modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose
problème :
1: string s = "34,23";
2: decimal d = Convert.ToDecimal(s);
3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque
j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
decimal), j'obtiens une l'erreur de compilation suivante :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jerome
En ASP .NET je ne sais pas mais en VB j'utilise une fonction StrToVal qui envoie le contenu des Textbox vers SQL Server et il n'y a pas de problème.
Public Function StrToVal(ByVal z_S1 As Variant) As Double Dim z_S2 As String Dim z_I1 As Integer
If IsEmpty(z_S1) Then StrToVal = 0: Exit Function If IsNumeric("1,1") Then If InStr(z_S1, ".") <> 0 Then Mid$(z_S1, InStr(z_S1, "."), 1) = "," End If If IsNumeric(z_S1) = False Then StrToVal = 0: Exit Function If InStr(z_S1, ",") <> 0 Then Mid$(z_S1, InStr(z_S1, ","), 1) = "." If InStr(z_S1, " ") <> 0 Or InStr(z_S1, Chr$(160)) <> 0 Then z_S2 = "" For z_I1 = 1 To Len(z_S1) If Mid$(z_S1, z_I1, 1) <> " " And Asc(Mid$(z_S1, z_I1, 1)) <> 160 Then z_S2 = z_S2 & Mid$(z_S1, z_I1, 1) Next z_S1 = z_S2 End If StrToVal = Trim$(Val(z_S1)) End Function
"Olivier" wrote in message news:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox.
Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur
"."
est systématiquement remplacé par "," (vérification via SQL Server
Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
En ASP .NET je ne sais pas mais en VB j'utilise une fonction StrToVal qui
envoie le contenu des Textbox vers SQL Server et il n'y a pas de problème.
Public Function StrToVal(ByVal z_S1 As Variant) As Double
Dim z_S2 As String
Dim z_I1 As Integer
If IsEmpty(z_S1) Then StrToVal = 0: Exit Function
If IsNumeric("1,1") Then
If InStr(z_S1, ".") <> 0 Then Mid$(z_S1, InStr(z_S1, "."), 1) = ","
End If
If IsNumeric(z_S1) = False Then StrToVal = 0: Exit Function
If InStr(z_S1, ",") <> 0 Then Mid$(z_S1, InStr(z_S1, ","), 1) = "."
If InStr(z_S1, " ") <> 0 Or InStr(z_S1, Chr$(160)) <> 0 Then
z_S2 = ""
For z_I1 = 1 To Len(z_S1)
If Mid$(z_S1, z_I1, 1) <> " " And Asc(Mid$(z_S1, z_I1, 1)) <>
160 Then z_S2 = z_S2 & Mid$(z_S1, z_I1, 1)
Next
z_S1 = z_S2
End If
StrToVal = Trim$(Val(z_S1))
End Function
"Olivier" <Olivier@discussions.microsoft.com> wrote in message
news:439D94E0-35E0-44FE-BBF3-E5A773F6F2A7@microsoft.com...
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
L'utilisateur doit saisir des valeurs décimales dans certaines TextBox.
Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une
valeur mais l'insertion dans la base ne fonctionne pas car le séparateur
"."
est systématiquement remplacé par "," (vérification via SQL Server
Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
globalisation via la classe CultureInfo, d'apporter une modification au
niveau du fichier de configuration avec l'élément globalization et de
modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose
problème :
1: string s = "34,23";
2: decimal d = Convert.ToDecimal(s);
3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque
j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
decimal), j'obtiens une l'erreur de compilation suivante :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
En ASP .NET je ne sais pas mais en VB j'utilise une fonction StrToVal qui envoie le contenu des Textbox vers SQL Server et il n'y a pas de problème.
Public Function StrToVal(ByVal z_S1 As Variant) As Double Dim z_S2 As String Dim z_I1 As Integer
If IsEmpty(z_S1) Then StrToVal = 0: Exit Function If IsNumeric("1,1") Then If InStr(z_S1, ".") <> 0 Then Mid$(z_S1, InStr(z_S1, "."), 1) = "," End If If IsNumeric(z_S1) = False Then StrToVal = 0: Exit Function If InStr(z_S1, ",") <> 0 Then Mid$(z_S1, InStr(z_S1, ","), 1) = "." If InStr(z_S1, " ") <> 0 Or InStr(z_S1, Chr$(160)) <> 0 Then z_S2 = "" For z_I1 = 1 To Len(z_S1) If Mid$(z_S1, z_I1, 1) <> " " And Asc(Mid$(z_S1, z_I1, 1)) <> 160 Then z_S2 = z_S2 & Mid$(z_S1, z_I1, 1) Next z_S1 = z_S2 End If StrToVal = Trim$(Val(z_S1)) End Function
"Olivier" wrote in message news:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox.
Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur
"."
est systématiquement remplacé par "," (vérification via SQL Server
Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
Bl
Bonjour,
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
--- @go
"Olivier" wrote:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
Bonjour,
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton
système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
---
Bl@ckDr@go
"Olivier" wrote:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une
valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "."
est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
globalisation via la classe CultureInfo, d'apporter une modification au
niveau du fichier de configuration avec l'élément globalization et de
modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose
problème :
1: string s = "34,23";
2: decimal d = Convert.ToDecimal(s);
3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque
j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
decimal), j'obtiens une l'erreur de compilation suivante :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
--- @go
"Olivier" wrote:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
Bl
Autre idée, utilise le cultureinfo correspondant à la version de ton serveur SQL (si les culture sont différentes).
string s = "34,23"; Decimal d = Decimal.Parse(s);
// Je suppose que ta BDD est en francais, ca peut etre en_US, ... // tu as les correspondance dans l'aide System.IFormatProvider format = new System.Globalization.CultureInfo( "fr-FR", true );
string query = String.Format( "INSERT INTO MaTable(MonChamps) VALUES({0})", d.ToString(format) );
Je pense que cela devrait fonctionner ...
--- @go
"@go" wrote:
Bonjour,
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
--- @go
"Olivier" wrote:
> Bonjour, > > Je travaille sur une interface ASP .NET contenant plusieurs TextBox. > L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les > données sont ensuite envoyées dans une table SQL Server. > > Le problème que je rencontre est le suivant : l'utilisateur saisit une > valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." > est systématiquement remplacé par "," (vérification via SQL Server Profiler). > > J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de > globalisation via la classe CultureInfo, d'apporter une modification au > niveau du fichier de configuration avec l'élément globalization et de > modifier tout un tas de paramètres mais rien n'a résolu mon problème. > > Voici un extrait du code (version avec une conversion classique) qui pose > problème : > > 1: string s = "34,23"; > 2: decimal d = Convert.ToDecimal(s); > 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")"; > > J'ai l'impression que le problème vient de la ligne 1 car lorsque > j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un > decimal), j'obtiens une l'erreur de compilation suivante : > System.FormatException: Le format de la chaîne d'entrée est incorrect. > > Par avance, je vous remercie pour vos idées !
Autre idée, utilise le cultureinfo correspondant à la version de ton serveur
SQL (si les culture sont différentes).
string s = "34,23";
Decimal d = Decimal.Parse(s);
// Je suppose que ta BDD est en francais, ca peut etre en_US, ...
// tu as les correspondance dans l'aide
System.IFormatProvider format = new System.Globalization.CultureInfo(
"fr-FR", true );
string query = String.Format( "INSERT INTO MaTable(MonChamps) VALUES({0})",
d.ToString(format) );
Je pense que cela devrait fonctionner ...
---
Bl@ckDr@go
"Bl@ckDr@go" wrote:
Bonjour,
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton
système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
---
Bl@ckDr@go
"Olivier" wrote:
> Bonjour,
>
> Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
> L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les
> données sont ensuite envoyées dans une table SQL Server.
>
> Le problème que je rencontre est le suivant : l'utilisateur saisit une
> valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "."
> est systématiquement remplacé par "," (vérification via SQL Server Profiler).
>
> J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
> globalisation via la classe CultureInfo, d'apporter une modification au
> niveau du fichier de configuration avec l'élément globalization et de
> modifier tout un tas de paramètres mais rien n'a résolu mon problème.
>
> Voici un extrait du code (version avec une conversion classique) qui pose
> problème :
>
> 1: string s = "34,23";
> 2: decimal d = Convert.ToDecimal(s);
> 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
>
> J'ai l'impression que le problème vient de la ligne 1 car lorsque
> j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
> decimal), j'obtiens une l'erreur de compilation suivante :
> System.FormatException: Le format de la chaîne d'entrée est incorrect.
>
> Par avance, je vous remercie pour vos idées !
Autre idée, utilise le cultureinfo correspondant à la version de ton serveur SQL (si les culture sont différentes).
string s = "34,23"; Decimal d = Decimal.Parse(s);
// Je suppose que ta BDD est en francais, ca peut etre en_US, ... // tu as les correspondance dans l'aide System.IFormatProvider format = new System.Globalization.CultureInfo( "fr-FR", true );
string query = String.Format( "INSERT INTO MaTable(MonChamps) VALUES({0})", d.ToString(format) );
Je pense que cela devrait fonctionner ...
--- @go
"@go" wrote:
Bonjour,
essaie de ne pas convertir en decimal avant d'écrire la requête. Si ton système est en français, le séparateur est, par défaut, la virgule.
En espérant que cela puisse t'aider ...
--- @go
"Olivier" wrote:
> Bonjour, > > Je travaille sur une interface ASP .NET contenant plusieurs TextBox. > L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les > données sont ensuite envoyées dans une table SQL Server. > > Le problème que je rencontre est le suivant : l'utilisateur saisit une > valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." > est systématiquement remplacé par "," (vérification via SQL Server Profiler). > > J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de > globalisation via la classe CultureInfo, d'apporter une modification au > niveau du fichier de configuration avec l'élément globalization et de > modifier tout un tas de paramètres mais rien n'a résolu mon problème. > > Voici un extrait du code (version avec une conversion classique) qui pose > problème : > > 1: string s = "34,23"; > 2: decimal d = Convert.ToDecimal(s); > 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")"; > > J'ai l'impression que le problème vient de la ligne 1 car lorsque > j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un > decimal), j'obtiens une l'erreur de compilation suivante : > System.FormatException: Le format de la chaîne d'entrée est incorrect. > > Par avance, je vous remercie pour vos idées !
Fred BROUARD
Olivier a écrit :
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23";
Rajouter un replace en tranformat le "," en "."
2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************
Olivier a écrit :
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une
valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "."
est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
globalisation via la classe CultureInfo, d'apporter une modification au
niveau du fichier de configuration avec l'élément globalization et de
modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose
problème :
1: string s = "34,23";
Rajouter un replace en tranformat le "," en "."
2: decimal d = Convert.ToDecimal(s);
3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque
j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
decimal), j'obtiens une l'erreur de compilation suivante :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
A +
--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies
*********************** http://www.sqlspot.com *************************
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23";
Rajouter un replace en tranformat le "," en "."
2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
A +
-- Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com Audit, conseil, expertise, formation, modélisation, tuning, optimisation Enseignant aux Arts & Métiers PACA et à L'ISEN Toulon - Var Technologies *********************** http://www.sqlspot.com *************************
WOLO Laurent
Faire un replace de la virgule en . (utiliser la fonction replace) string s="34,23".replace(",","."); string query = "INSERT INTO MaTable(MonChamps) VALUES(" + s + ")";
"Olivier" a écrit dans le message de news:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.
Par avance, je vous remercie pour vos idées !
Faire un replace de la virgule en . (utiliser la fonction replace)
string s="34,23".replace(",",".");
string query = "INSERT INTO MaTable(MonChamps) VALUES(" + s + ")";
"Olivier" <Olivier@discussions.microsoft.com> a écrit dans le message de
news:439D94E0-35E0-44FE-BBF3-E5A773F6F2A7@microsoft.com...
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox.
L'utilisateur doit saisir des valeurs décimales dans certaines TextBox.
Les
données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une
valeur mais l'insertion dans la base ne fonctionne pas car le séparateur
"."
est systématiquement remplacé par "," (vérification via SQL Server
Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de
globalisation via la classe CultureInfo, d'apporter une modification au
niveau du fichier de configuration avec l'élément globalization et de
modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose
problème :
1: string s = "34,23";
2: decimal d = Convert.ToDecimal(s);
3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque
j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un
decimal), j'obtiens une l'erreur de compilation suivante :
System.FormatException: Le format de la chaîne d'entrée est incorrect.
Faire un replace de la virgule en . (utiliser la fonction replace) string s="34,23".replace(",","."); string query = "INSERT INTO MaTable(MonChamps) VALUES(" + s + ")";
"Olivier" a écrit dans le message de news:
Bonjour,
Je travaille sur une interface ASP .NET contenant plusieurs TextBox. L'utilisateur doit saisir des valeurs décimales dans certaines TextBox. Les données sont ensuite envoyées dans une table SQL Server.
Le problème que je rencontre est le suivant : l'utilisateur saisit une valeur mais l'insertion dans la base ne fonctionne pas car le séparateur "." est systématiquement remplacé par "," (vérification via SQL Server Profiler).
J'ai tenté de faire un Convert, un Parse, de modifier les paramètres de globalisation via la classe CultureInfo, d'apporter une modification au niveau du fichier de configuration avec l'élément globalization et de modifier tout un tas de paramètres mais rien n'a résolu mon problème.
Voici un extrait du code (version avec une conversion classique) qui pose problème :
1: string s = "34,23"; 2: decimal d = Convert.ToDecimal(s); 3: string query = "INSERT INTO MaTable(MonChamps) VALUES(" + d + ")";
J'ai l'impression que le problème vient de la ligne 1 car lorsque j'initialise la chaîne s à "34.23" (ce qui me semble cohérent pour un decimal), j'obtiens une l'erreur de compilation suivante : System.FormatException: Le format de la chaîne d'entrée est incorrect.