只要文本框为空,我就会在以下代码行中收到以上错误:
decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text);
有人可以告诉我可能出错的地方并为其提供解决方案吗?
答案 0 :(得分:1)
我在下面的代码行中遇到上述错误 文本框为空:
如果您使用Convert.ToDecimal
或Decimal.Parse
,则会出现异常,如果您想避免异常并检查其是否包含任何有效输入,请使用decimal.TryParse
decimal Qty;
if(!decimal.TryParse(txtQtyforAnalysis.Text, out Qty)
{
//Some invalid input , empty string or invalid decimal number
}
else
{
//valid decimal number
}
如果您想检查TextBox.Text
是否为空字符串,可以使用string.IsNullOrEmpty
或string.IsNullOrWhiteSpace
(随.Net framework 4.0或更高版本提供) :
if(string.IsNullOrWhiteSpace(txtQtyforAnalysis.Text))
{
//Don't do parsing
}
答案 1 :(得分:1)
你期待发生什么?如果你想要“”表示QTY为0,那么就这样做:
Decimal qty = String.IsNullOrEmpty(txtQtyforAnalysis.Text) ? 0 : Convert.ToDecimal(txtQtyforAnalysis.Text);
答案 2 :(得分:0)
如果没有任何内容,您可以将默认值设置为0,这假设您希望这样做。
decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text == "" ? "0" : txtQtyforAnalysis.Text);
或者只使用Decimal.TryParse
decimal Qty;
if (decimal.TryParse(txtQtyforAnalysis.Text, out Qty))
{
//it worked
}
答案 3 :(得分:0)
试试这个
If IsNumeric(txtQtyforAnalysis.Text)
{
decimal Qty = Convert.ToDecimal(txtQtyforAnalysis.Text);
}