我有以下代码来对文本框进行一些非常简单的验证

    if(txtInStock.Text.Length == 0)
        txtInStock.Text = Convert.ToString(0);

    if (txtInStock.Text.Length == 0)
        txtOnOrder.Text = Convert.ToString(0);

    int inStockAmt = Convert.ToInt32(txtInStock.Text);
    int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

当text!= 0时,这正常工作,但是当文本== 0时,我会得到一个formatexception,说字符串不是适当的格式。我该如何纠正?

有帮助吗?

解决方案

您的问题在这里:

if (txtInStock.Text.Length == 0)
    txtOnOrder.Text = Convert.ToString(0);

您正在检查一个文本框的长度并设置另一个文本。将其更改为:

if (txtOnOrder.Text.Length == 0)
    txtOnOrder.Text = Convert.ToString(0);

另外,有什么原因您正在使用 Convert.ToString(0) 而不是只是 "0"?我不特别建议使用这种方法进行数据验证,但这应该纠正问题。

其他提示

因为您不能确定文本框的用户会编写正确的整数,所以我建议使用 int32.tryparse() 而不是convert.toint32。因此,您将能够轻松处理错误情况。

这个代码会这样做吗?

    if(txtInStock.Text.Length == 0)
        txtInStock.Text = "0";

    if (txtInStock.Text.Length == 0)
        txtOnOrder.Text = "0";

    int inStockAmt = Convert.ToInt32(txtInStock.Text);
    int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

希望这对汤姆有帮助,汤姆。

这是处理空文本框的简单方法

if( string.IsNullOrEmpty( txtInStock.Text ))
    txtInStock.Text = "0";

if( string.IsNullOrEmpty( txtOnOrder.Text ))
    txtOnOrder.Text = "0";

int inStockAmt = Convert.ToInt32(txtInStock.Text);
int onOrderAmt = Convert.ToInt32(txtOnOrder.Text);

我还将文本框值将其保存到临时变量,然后进行比较,除非您想在文本框中强制0时将其强制为空。

int instockamt = convert.toint32(string.isnullorrementy(txtinstock.text)?0:int.parse(txtinstock.text));

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top