Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 解析各种字符串_C#_Sql_Sql Server_Format - Fatal编程技术网

C# 解析各种字符串

C# 解析各种字符串,c#,sql,sql-server,format,C#,Sql,Sql Server,Format,您好,我可能有字符串,例如“1,1”或“1.1”或“1”或”,我需要从每个字符串中获得相同格式的结果,以便将其作为数字(8,2)保存在SQL Db中 传递的字符串是:“2500,00”,但也可以是”或“2500.00” 这些值需要保存在sql numeric(8,2)中 当文本框p_ub_cis为空时,字符串为0,我得到的结果是:System.FormatException输入字符串的格式不正确 有人能帮我解决这个问题吗 感谢您抽出时间您的问题在于以下代码片段: p_ub_c.Text.Repl

您好,我可能有字符串,例如
“1,1”
“1.1”
“1”
,我需要从每个字符串中获得相同格式的结果,以便将其作为数字(8,2)保存在SQL Db中

传递的字符串是:
“2500,00”
,但也可以是
“2500.00”

这些值需要保存在sql numeric(8,2)中 当文本框
p_ub_cis
为空时,字符串为0,我得到的结果是:System.FormatException输入字符串的格式不正确

有人能帮我解决这个问题吗


感谢您抽出时间

您的问题在于以下代码片段:

p_ub_c.Text.Replace(',', '.') == string.Empty ? "0.00" : p_ub_c.Text
这表示“获取我的文本并替换”、“替换为”,如果结果为空字符串,则使用“0.00”,否则使用“文本”。换句话说,您将丢失替换的结果


如果您将其更改为存储替换的结果并对其进行解析,则应该可以修复该问题。但要小心有人输入例如“1000.1”,因为您最终会得到“1.000.1”,这仍然是一个无效的数字。

您的问题在于以下代码片段:

p_ub_c.Text.Replace(',', '.') == string.Empty ? "0.00" : p_ub_c.Text
这表示“获取我的文本并替换”、“替换为”,如果结果为空字符串,则使用“0.00”,否则使用“文本”。换句话说,您将丢失替换的结果


如果您将其更改为存储替换的结果并对其进行解析,则应该可以修复该问题。小心有人输入例如“1000.1”,因为您将以“1.000.1”结束,这仍然是一个无效的数字。

如果您从未使用
替换
返回的内容,则应按以下方式使用它:

string.IsNullOrEmpty(p_ub_c.Text) ? "0.00" : p_ub_c.Text.Replace(',', '.');

您从不使用
Replace
返回的内容,应按如下方式使用:

string.IsNullOrEmpty(p_ub_c.Text) ? "0.00" : p_ub_c.Text.Replace(',', '.');


对不起,你的问题毫无意义。1.1、1和空字符串如何产生相同的结果?你想让它们都等于什么值?我们能看到传递给
Decimal.Parse
的实际字符串吗?@DavidArno对不起,我的意思是相同的格式化结果。@Yosi我编辑了我的问题。根据你的回答,你不明白我的意思,我想让你显示-
p_ub_c.Text.Replace(',')==string.Empty的计算结果?“0.00”:p_ub_c.Text,ci
,您不应该有
,因为您已替换了它们。对不起,您的问题没有意义。1.1、1和空字符串如何产生相同的结果?你想让它们都等于什么值?我们能看到传递给
Decimal.Parse
的实际字符串吗?@DavidArno对不起,我的意思是相同的格式化结果。@Yosi我编辑了我的问题。根据你的回答,你不明白我的意思,我想让你显示-
p_ub_c.Text.Replace(',')==string.Empty的计算结果?“0.00”:p_ub_c.Text,ci
,您不应该有
,因为您已经替换了它们。@DavidAmo谢谢您,但在Windows XP上它无法格式化。在我的Windows 8上,这没问题。你不知道怎么处理吗?对不起,马瑞克,但我不明白。什么东西不能在XP上格式化?您的代码在Windows 8上格式化很好,但在Windows XP上,它显示将nvarchar转换为数字时出错。我没有向您提供任何代码。我引用了你的话。您需要将其更改为@Yosi在其回答中提供的格式。@DavidAmo谢谢您,但在Windows XP上它无法格式化。在我的Windows 8上,这没问题。你不知道怎么处理吗?对不起,马瑞克,但我不明白。什么东西不能在XP上格式化?您的代码在Windows 8上格式化很好,但在Windows XP上,它显示将nvarchar转换为数字时出错。我没有向您提供任何代码。我引用了你的话。您需要将其更改为@Yosi在其回答中提供的内容。