使用asp.net mvc 3的信用卡详细信息的数据类型

时间:2012-04-17 02:29:59

标签: c# asp.net-mvc-3 data-annotations

有点困惑,我尝试在我的信用卡详细信息和电话中的数据类型int的最大和最小长度,但我不知道如何。

    [Required(ErrorMessage = "Telephone is required")]
    public int Telephone { get; set; }
    [Required(ErrorMessage = "Card Type is required")]
    [DisplayName("Card Type")]
    [StringLength(20)]
    public string CardType { get; set; }
    [Required(ErrorMessage = "Card Holders Name is required")]
    [DisplayName("Card Holders Name")]
    [StringLength(160)]
    public string CardHoldersName { get; set; }
    public int CardNumber { get; set; }
    public int CardExpMonth { get; set; }
    public int CardExpYear { get; set; }
    [ScaffoldColumn(false)]
    public decimal Total;

3 个答案:

答案 0 :(得分:4)

为什么要将卡号存储在整数中?字符串不合适吗?

字符串可以处理您需要的任何cc号码。它还可以处理(进一步处理)用户在数字之间输入空格的情况。

答案 1 :(得分:1)

如果您要以数字格式存储CardNumber,请使用longA 32-bit signed int's max value is 2,147,483,647 - 请记住,intsynonymous with System.Int32 - 这远远不足以容纳16位信用卡号码。 long (aka System.Int64)的最大值为9,223,372,036,854,775,807,因此它可以保存每个18位数字。

请注意,uint(无符号32位整数)仍然不够大,因为它的最大值仅为4,294,967,295

答案 2 :(得分:0)

使用BigInteger System.Numerics

中可用的{{1}}结构

我认为这对你有用

http://msdn.microsoft.com/en-us/library/system.numerics.biginteger.aspx

在.NET中使用难以置信的大数字

http://www.codeproject.com/Articles/2728/C-BigInteger-Class