我描述一下我在使用.net操作数据库时遇到的问题:
我创建了一个管理员用户表:create table Admin
(
Aid int identity not null,
Aname char(10) not null,
Apwd char(20) not null,
)
里面有一条数据,Aname的长度是5(zheng),Apwd的长度是10(1234567890),现在我想通过.net对管理员的密码进行修改。就是在输入原始密码(Apwd)并与session保存的Aname进行匹配成功后,进行密码更新操作。可是在输入原始密码后,老是匹配失败,就是跳出匹配成功条件下的if语句。后来我发现,如果在输入的密码后敲10个空格,就可以匹配成功。这是为什么?如何才能解决这个问题?
我创建了一个管理员用户表:create table Admin
(
Aid int identity not null,
Aname char(10) not null,
Apwd char(20) not null,
)
里面有一条数据,Aname的长度是5(zheng),Apwd的长度是10(1234567890),现在我想通过.net对管理员的密码进行修改。就是在输入原始密码(Apwd)并与session保存的Aname进行匹配成功后,进行密码更新操作。可是在输入原始密码后,老是匹配失败,就是跳出匹配成功条件下的if语句。后来我发现,如果在输入的密码后敲10个空格,就可以匹配成功。这是为什么?如何才能解决这个问题?
Trim()去掉空格。另外数据库中还是设计变长前台可以验证长度后台在判断一道即可。
解决方法有两个:
一是将数据库中的字段给魏varchar型(可变长度);二是用字符串对象的Trim方法去除空格。