在调试学生管理系统可能都会遇到字段溢出之类的错误,如图:
这是因为在数据库设计时,把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上的处女作,希望在这个平台学到更多!