题
我有以下代码来对文本框进行一些非常简单的验证
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));
不隶属于 StackOverflow