最近用wpf做功能的时候,新增的一个数据库字段,能够写入数据到数据库,但是前端combobox(Item的数据写死)无论如何都显示不了数据。跟踪代码,确定读取数据库数据是没有问题的,代码功能也基本没有问题。于是比较纳闷为什么无法显示数据。后来想到了是不是数据库的字段类型的问题。因为新增字段用的是nchar类型。查阅资料发现:
nchar: 固定长度,存储Unicode字符,不足的补英文半角空格
nvarchar: 可变长度,存储Unicode字符,根据数据长度自动变化。
因为nchar类型的字段是固定的长度,所以在数据写入的时候不足长度的地方补了空格,所以读取的时候空格也会一起读取。导致了combobox无法正常显示该数值。
解决:将数据库中该字段的字段类型修改为nvarchar类型即可。