个人愚见:
在很确定填充该字段的值的长度时,用定长,否则用变长,而且要略长于心理承受值。
如邮编就是定长为6位。
今天就在这个问题上查了半天。
服务器上输出的日志提示:
email:tuhailiang0123@yahoo.com.cn
System.Data.SqlClient.SqlException: 将截断字符串或二进制数据。
语句已终止。
前面的email是为了调试输出的,看提示很明白:某字段的长度不够用来存储相关的数据。
因该操作涉及到二个表,在表A中写入email,该字段类型是varchar(50),存储上面的email是绝没问题。
那问题出在何处?一定是第二个表(B表)了。
B表中需要记录email和用户昵称,字段类型分别为:nchar(50)/nchar(20),
以前的逻辑是用户的昵称是不能超过20个字符,即用nchar(20)是可以存储了,但后来逻辑改了,
用户可以跳过输昵称的选项,当跳过该项时,用户昵称默认就是用户的email了,这样一来,nchar(20)就无法存储上述的email地址,
故抛出异常。
该问题让我查了近1个小时!-_____-