机房数据库之数据类型

   前几天在敲组合查询中修改学生信息那个窗体时,遇到了小麻烦,本来在自己看来再简单不过一行代码,就是实现不了。


当组合查询出来的学生信息状态为不使用时,确定修改和Frame都要不能修改,即

If lblStatus.Caption = "不使用" Then
    Command1.Enabled = False
    Frame1.Enabled = False
    End If
后来世超师傅在lblstatus.Caption前加了trim就完美解决了,然后打开我的数据库发现数据后面是有空格填充的

          
然后师傅就让我去查char、nchar、varchar、nvarchar的作用和区别,一查才知道长得像作用可不一样。

1、定长、变长

char和nchar是定长,即长度是固定的,当输入的数据长度没有达到指定的长度时将自动以空格在其后面填充,使长度达到相应的长度;varchar和nvarchar是变长,字符数据不会以空格填充,字符是多少,长度就是多少。

2、字段容量(Unicode或非Unicode

Unicode字符集中所有的字符都用两个字符来表示,字母是占一个字节的,而汉字是占两个字节的,如果字母和汉字同时存在容易造成混乱而出现乱码,所以说nchar和nvarchar这两种类型是使用了Unicode字符集。

char和varchar字段容量最多8000个英文,4000个汉字;nchar和nvarchar字段容量为4000个字符,无论英文还是汉字。

所以说,只要把数据库字段的数据类型改为varchar就可以了,当然为了方便,也可以使用nvarchar,不过是在存储上有些损失。

你可能感兴趣的:(机房数据库之数据类型)