今天碰见一小细节问题,找了好久发现是长度,我没有很清楚的了解。
string str = "a.23859697AA (芜湖杰诺瑞) b.23859697BA(长沙博世)";
str.Length= 40
在C#中 字符串str的长度是40 这里是指字符串的长度
插入到SQL数据库中 str varchar(50) 报错:String or binary data would be truncated. 字符串长度过长需截断。
然后select Len('a.23859697AA (芜湖杰诺瑞) b.23859697BA(长沙博世)') 查询出来的结果是40 以为没有超出长度
后来经过搜索发现 select Datalength('a.23859697AA (芜湖杰诺瑞) b.23859697BA(长沙博世)') 查询出来的结果是52
Datalength: 返回字符串的字节长度
Len: 返回字符长度
而varchar的长度是指 字符串的字节长度
附: varchar nvarchar char的区别
来自:http://www.cnblogs.com/yelaiju/archive/2010/05/29/1746826.html