晨鸟科技

 找回密码
 注册
搜索
查看: 12241|回复: 1
打印 上一主题 下一主题

解释SqlServer中null和''的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2010-7-30 19:49:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10金钱
本帖最后由 Star 于 2011-6-9 21:04 编辑
; |6 z8 \* f9 Q  T( z# F6 F( T" v
0 u5 f. w: j$ h/ A+ d详细解释SqlServer中对于空字符的处理
. J# E* G( r4 d$ j& f& {2 n一次存储过程中,以null作为if判断条件,存储过程执行的结果如:
/ r) r, z; ^  y5 e* s
5 A  ]) B% f1 b8 J; j+ i, Z而将所有的null替换成'',之后,执行结果如:8 K$ Q6 T7 c. h

8 h/ R8 R; G$ O5 ?' f' z/ y
. L1 H; i* I; V. L请帮忙解释

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
沙发
 楼主| 发表于 2010-7-30 20:02:54 | 只看该作者
【String.Empty,NULL和""的区别】- I5 p. Y. f: R; d1 b

! f5 `- N% v: ^! [; d* astring.Empty不分配存储空间" \  H  q' s/ Y3 I3 y
      ""分配一个长度为空的存储空间   9 @7 ]( M' Y" N- |% C7 a0 ^. j
      所以一般用string.Empty
' x) l# [# ~) n8 k, E: X  i4 w2 R/ w0 N# z* Z& C8 m  \
为了以后跨平台,还是用string.empty
# w% ~7 L3 Z# f( k0 j2 A7 s  F
. g) _1 y6 k" U: v) W( M在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:$ K4 M3 s5 p2 s/ C: d9 |( j
4 v6 M6 m! O: G4 H
string s = "";
2 q8 b$ l9 l: p! g; Z$ cstring s2 = string.Empty;0 t6 N5 L5 \  Y# b3 j
; C: r: H1 B/ ~, F! D- E
if (s == string.Empty) {
2 ?3 o' d) L2 h  //
( F0 G5 T0 I; ~. [* i}
2 X. ]* n* j5 |* c0 R7 Cif语句成立
6 X, @6 r; `4 `6 o9 x. A% y4 X0 r1 e1 B- o/ X( X

% \& ~, ~: i4 E% B) d* R9 M7 C判定为空字符串的几种写法,按照性能从高到低的顺序是:! Y7 U3 R- u) q- ~
& N/ g3 @$ q5 Q3 D9 a+ x2 k7 {4 q
s.Length == 0      优于 s == string.Empty      优于 s == "" ! C5 H2 g& R: I2 E- k, P- Z! G
- {" x4 H% g* R9 }

  ?/ ?4 E7 L2 R; N; \3 w! O3 O. v关于String.Empty和Null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= String.Empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textBox1.Text的值为零长度字符串 ""。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2025-8-13 12:42 , Processed in 6.066018 second(s), 7 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表