学生管理系统之字段溢出

在调试学生管理系统可能都会遇到字段溢出之类的错误,如图:

这是因为在数据库设计时,把born_date字段的数据类型设置成datetime类型了,如图:

Datetime表示的日期范围从公元1753年1月1日00:00:00.000 到9999年12月31日23:59:59.997 ,精确到3.33毫秒,它需要8个字节的存储空间
date是SQL Server 2008新引进的数据类型。它表示一个日子,不包含时间部分,可以表示的日期范围从公元元年1月1日到9999年12月31日。

所以输入的日期在1753-1-1之前就会出现如上错误!

解决方法:

如果使用的是SQL server 2008,直接把数据类型由datetime改成date就行了。但是date是SQL server 2008新引进的数据类型。如果使用的是SQL server 2000,就得用代码实现了。

我用的是DateDiff()函数

If DateDiff("d", CDate(txtBorndate.Text), "1753-01-01") > 0 Then

        MsgBox "出生日期请输入1753年以后的年份!", vbOKOnly + vbExclamation, "警告"
        txtBorndate.SetFocus
        Exit Sub
  End If

 

同类型的错误还出现在电话号码输入部分如图:

也是数据库的设计时把tel_number的数据类型设计成char(10),所以只能输入10个数字,否则会出现如上错误!

这些错误都是数据库设计的数据类型和输入的数据有冲突造成的

这篇是在CSDN上的处女作,希望在这个平台学到更多!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值