预留数据表字段长度

in 未分类

个人愚见:

在很确定填充该字段的值的长度时,用定长,否则用变长,而且要略长于心理承受值。

如邮编就是定长为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个小时!-_____-

 

0 Comments

Leave a Reply

Using Gravatars in the comments - get your own and be recognized!

XHTML: These are some of the tags you can use: <a href=""> <b> <blockquote> <code> <em> <i> <strike> <strong>