晨鸟科技
标题:
解释SqlServer中null和''的区别
[打印本页]
作者:
Star
时间:
2010-7-30 19:49
标题:
解释SqlServer中null和''的区别
本帖最后由 Star 于 2011-6-9 21:04 编辑
$ }4 E2 d0 x) ~0 j( o& @
4 C) Y2 L1 @+ t7 s' w- f! u2 |
详细解释SqlServer中对于空字符的处理
8 }7 t, d; V {7 ~
一次存储过程中,以null作为if判断条件,存储过程执行的结果如:
9 T. L* O6 \* K
[attach]52[/attach]
$ H4 m5 b K/ W
而将所有的null替换成'',之后,执行结果如:
D1 Y, x: i& V3 s9 h& U
[attach]51[/attach]
! J; [& u8 A F5 M
) a. l" m/ O7 P. s1 s9 }2 J
请帮忙解释
作者:
Star
时间:
2010-7-30 20:02
【String.Empty,NULL和""的区别】
% U+ l& ~7 C ?7 a* i1 {+ y5 Y
$ o2 `4 {! P8 P1 Z; F3 F [
string.Empty不分配存储空间
6 E- W! t5 [* s) U4 j
""分配一个长度为空的存储空间
P$ R P6 J9 Z* L. }8 j- `, C O
所以一般用string.Empty
# e" ]0 h5 N: F+ T
% }& \9 d% q' d6 Y( @( w( q K" E
为了以后跨平台,还是用string.empty
9 w$ {2 t- ]6 L! A
% R: e. x% `* a' {
在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
% o: l+ S- w1 A. R O1 D! o
) o5 I$ v& F0 d T+ d" ]
string s = "";
) u, `" }2 |9 M- J. N% e
string s2 = string.Empty;
' `) A6 d3 f# q2 m) _
& L! R% ]* }* t5 j( ^5 b
if (s == string.Empty) {
" {* X4 G6 r( B& {% d- h. e& ]
//
1 A3 K$ I0 x% j* {. S. k1 T; w; [
}
, a4 C1 s$ o5 ]
if语句成立
8 |5 v6 E l S2 f. \8 A
: J$ B* S- F# S) I. k0 Q; ]' X, {
" E6 A. ^8 J4 y) W4 }, r
判定为空字符串的几种写法,按照性能从高到低的顺序是:
6 R R: W0 N; W
$ h: E4 J& x# g% k1 u7 n
s.Length == 0 优于 s == string.Empty 优于 s == ""
, t; M3 `& X* L1 `8 O& e
& t/ L0 I% i- B5 c% L
1 g( A! w7 ]6 q8 K
关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。
欢迎光临 晨鸟科技 (http://www.chenniao.com/cprofessor/)
Powered by Discuz! X3.2