c# - 无法从文本框将零转换为int32

标签 c# validation

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

    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时,这很好用,但是当Text == 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"吗?我不特别推荐使用这种方法进行数据验证,但这应该可以解决问题。

关于c# - 无法从文本框将零转换为int32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2343750/

相关文章:

c# - 序列化使用 yield return 创建的 IEnumerator<T>

c# - 如何在没有 default.htm 页面的情况下使用 ServiceStack MVC 库

c# - 无效操作异常 : The Undo operation encountered a context that is different from what was applied in the corresponding Set operation

javascript - React 多步表单提交和验证

validation - 从 asp-validation-summary 获取所有非模型错误

c# - 如何验证 Guid 数据类型?

c# - 如何更新 TabControl 资源?

c# - IronPython 和 Visual Studio 2015 的导入问题

php - 谷歌是偏执狂吗?

jquery 验证尚未创建的元素