文本框里的值插入sqlserver 表后学号前面的0消失?没有财富值啦,各位帮帮忙吧

在登陆界面有一个学号文本框,将文本框的值和学生表里的学号匹配后正确就进入考试,考试后将文本框的值插入考试表的学号里,但是学号最前面的0没有了。
比如文本框的值是0805111122,到了考试表里却成了805111122,这是为什么呢?
登录页面:
sql="select * from student where studentnumber='"&trim(request("student"))&"' and studentname='"&trim(request("pwd"))&"'"
set rs=conn.execute(sql)
session("number")=rs("studentnumber")
考试界面:
sqlin="insert into examination (examinationid,studentnumber,score,pass,isdo) values("&testid&","&session("number")&",0,0,0)"
学号的字段都是nvarchar。。。。

不知道你那个学生表的学号字段定义的是什么类型的,如果是数字类型的话,前面的0肯定会没了的,如果是字符串的话,应该是没有什么问题的。

补充回答:
那你看看你在你那个testid的前后加上单引号应该就没有问题了(Oracle中字符串用单引号,不知道sqlserver中是不是单引号,没有这个符号的话,处理的时候会先当成数字,这样就把前面的0给过滤了,另外,你在之前的语句中,将那个testid打印出来,以确认不是程序中的参数传递问题,而是sql语句的问题),即将sql修改为:
sqlin="insert into examination (examinationid,studentnumber,score,pass,isdo) values('"&testid&"',"&session("number")&",0,0,0)"
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-25
看你是几位号了,如果像你所说的805111122,这是9位数,你就在单元格里的自定义里打上十个0,就是位数+前面所需的零数。比如2258,是四位数,就在自定义类型里输入00000,预览框里就能显示出来02258了,要是输入结果为002258,那就输入000000,总之,输入完之后的0,要和最终的位数一致,不知道我说的明白没有。