【问题标题】:I keep getting" Input string was not in a correct format." error when adding values textboxes我不断收到“输入字符串的格式不正确。”添加值文本框时出错
【发布时间】:2015-03-29 14:39:00
【问题描述】:

我已经看过几篇相同错误的帖子,但我无法弄清楚为什么它对我不起作用。

我正在尝试在文本框中添加多个值。我从 2 个文本框开始测试,但我的计划是总共有 10 个。但我一直收到这个错误。我在每个文本框中都有这个事件。想法?如果需要,我可以包含我的 asp 代码。

protected void calculateLabs(object sender, EventArgs e)
    {
        string lab01 = TextBox1.Text;
        string lab02 = TextBox2.Text;

        int num1 = int.Parse(lab01);
        int num2 = int.Parse(lab02);

        int final = num1 + num2;

        Label1.Text = final.ToString();
    }

更新,它可以工作,但异常仍然会在标签上显示消息,一旦我输入下一个值,错误就会消失。

protected void calculateLabs(object sender, EventArgs e)
{
    try
    {
        int num1 = Convert.ToInt32(TextBox1.Text);
        int num2 = Convert.ToInt32(TextBox2.Text);

        int final = num1 + num2;

        Label1.Text = final.ToString();
    }
    catch(Exception ex)
    {
        Label1.Text = ex.Message;
    }
}

【问题讨论】:

    标签: c# asp.net textbox


    【解决方案1】:

    你为什么使用 final 这个词作为变量名?它是 c# 的保留字,其他语言尝试使用其他变量名称,例如 total、finalNum 等。

    【讨论】:

    • 我尝试更改变量名,但仍然给我一个错误。我将文本框中的所有值都设置为 0 并且它起作用了。
    【解决方案2】:

    不知道为什么,我不断收到错误消息。所以我只包括了每个文本框的默认值为 0 的地方。

     <asp:TextBox ID="part1" runat="server" AutoPostBack="true" OnTextChanged="calculateSum" Text="0">
    

    不再出错。

    【讨论】:

      【解决方案3】:
      • 确保两个文本框中输入的字符串都是数字。 请参阅此问题以执行此操作: How do I make a textbox that only accepts numbers?
      • 尝试使用 Convert.ToInt32(string s) 而不是 Int.Parse(string s)
      • 添加一个 try-catch 块并告诉我们究竟是哪里抛出了异常。

      更新:

      在转换 Textbox1 和 Textbox2 的值之前,请确保它们具有值而不是相等的 null

          protected void calculateLabs(object sender, EventArgs e)
          {
              try
              {
                  if (!string.IsNullOrEmpty(TextBox1.Text) && !string.IsNullOrEmpty(TextBox2.Text))
                  {
                      int num1 = Convert.ToInt32(TextBox1.Text);
                      int num2 = Convert.ToInt32(TextBox2.Text);
                      int final = num1 + num2;
                      Label1.Text = final.ToString();
                  }
              }
              catch (Exception ex)
              {
                  Label1.Text = ex.Message;
              }
          }
      

      【讨论】:

      • 我添加了异常并使用了转换方法,标签中显示错误。它确实说同样的错误,但是当我继续时,它会添加值。我用异常代码更新了我的问题。
      • 您将Label设置为异常的消息:“Label1.Text = ex.Message”,您最好将其记录在其他地方。
      猜你喜欢
      • 1970-01-01
      • 2014-01-17
      • 2018-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多