5月,我们的纪念
2007-10
09

个人愚见:

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

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

 

Categories:   学以致用
Tags:  
Actions:   Comments (6) |

Comments

1#

October 10 2007 , 00:25

Koorise

阅,下次注意,不要再犯类似的错误.

Koorise | Top

2#

October 10 2007 , 08:30

幻想曲

[quote=Koorise]
阅,下次注意,不要再犯类似的错误.
[/quote]
K,这表不是我设计的....

幻想曲 | Top

3#

October 12 2007 , 09:19

完美

-_-!!!
和sql相关的异常,就用sql server 跟踪下,很容易查到错误,一个小时 -_-

完美 | Top

4#

October 13 2007 , 19:06

宜兴

http://www.0510zx.com

宜兴 | Top

5#

October 16 2007 , 10:41

。。。

overred | Top

6#

October 18 2007 , 09:11

robinhong | Top

Add comment



(Will show your Gravatar icon)  



  Country flag


[b][/b] - [i][/i] - [u][/u]- [quote][/quote]

:-/ ^_^ :d :o :kiss: :) :p :se: [yeah] :( :love: :han: :up: :cry: :zzz: o_o


申请链接请看这里