【问题标题】:Value was either too large or too small for an Int32 in asp.net对于 asp.net 中的 Int32,值太大或太小
【发布时间】:2013-12-18 13:24:00
【问题描述】:

我有一个singup论坛,里面有电话号码字段

代码是:

try
{
    cz.SignUp(nametxt.Value, passtxt.Value,  
    Convert.ToInt32(DropDownList1.SelectedValue),  
    Convert.ToInt32(DropDownList2.SelectedValue),
    Convert.ToInt32(DropDownList3.SelectedValue),
    mailtxt.Value,Convert.ToInt32(numbtxt.Value));
    //GridView1.DataSource=ca.viewadmin();
    Lbe6.Text = ("Signup Success");             
}
catch
{
    lbe5.Text = ("FAILED");
}

但是当我点击提交按钮时,它会显示一个错误。 对于 Int32,值太大或太小。

我也尝试了 uint 和 int64,但没有成功

【问题讨论】:

  • 电话号码不是整数。它们是字符串。除非您将 555-555-1234 视为“负 1234”,否则它实际上是一个减法语句。
  • 哇,如果你向我提供该代码以供同行评审,我会仅出于格式原因拒绝它
  • numbtxt.Value 长什么样子?

标签: c# asp.net


【解决方案1】:

电话号码不是数字。

你应该使用一个字符串。

记住:如果你不能添加它,它就不是一个数字。

【讨论】:

    【解决方案2】:

    电话号码不是 NUMBERS

    最好使用string 来存储电话号码。

    附带说明:-

    来自MSDN

    整数变量存储为带符号的 32 位(4 字节)整数 范围从 -2,147,483,648 到 2,147,483,647。

    还有INT32

    Int32 是一个不可变的值类型,它表示有符号整数 范围为负 2,147,483,648 的值(由 Int32.MinValue 常量)到正 2,147,483,647(即 由 Int32.MaxValue 常量表示。 .NET 框架也 包括一个无符号的 32 位整数值类型 UInt32,它 表示范围从 0 到 4,294,967,295 的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-14
      • 2017-06-08
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-09
      相关资源
      最近更新 更多