标签转换返回错误“输入字符串的格式不正确”

问题描述

我有一些类似这样的代码

decimal dBaseSal = decimal.Parse(dataBoundItemt.FindControl("lblTotalComp1") is Label ? (dataBoundItemt.FindControl("lblTotalComp1") as Label).Text : "0");

标签的值为“”。因为目前那里什么也没有。我遇到了错误

输入字符串的格式不正确。

如何像现在使用Label一样进行验证,以确保在标签中创建它,而且,如果确实以“”出现,则仅在该条件下将该值设置为零。它必须为十进制格式,因为有时会有一些十进制值。

谢谢

解决方法

解析将返回该值。 如果找不到完全匹配的内容,则Parse将引发异常。

TryParse将返回布尔值并取出该值。 TryParse将尝试解析和转换,如果没有找到完全匹配的内容,它将返回false,否则返回true。如果找不到完全匹配的类型,则返回默认类型。

您可以这样做,

decimal.TryParse(dataBoundItemt.FindControl("lblTotalComp1") is Label ? (dataBoundItemt.FindControl("lblTotalComp1") as Label).Text : "0",out decimal dBaseSal);