我描述一下我在使用.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个空格,就可以匹配成功。这是为什么?如何才能解决这个问题?

解决方案 »

  1.   

    输入密码的时候textbox1.text.Trim()
    Trim()去掉空格。另外数据库中还是设计变长前台可以验证长度后台在判断一道即可。
      

  2.   

    因为数据库中的字段是char型,如果写入的数据少于20个字符,就会自动用空格补上,以保证长度为20。这样就不匹配了。
    解决方法有两个:
    一是将数据库中的字段给魏varchar型(可变长度);二是用字符串对象的Trim方法去除空格。