晨鸟科技

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

解释SqlServer中null和''的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2010-7-30 19:49:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10金钱
本帖最后由 Star 于 2011-6-9 21:04 编辑
1 ?+ a! L. L& _" n% S% O7 D- {0 J: }, f
详细解释SqlServer中对于空字符的处理) u& u; n% X1 _7 ]6 I  p
一次存储过程中,以null作为if判断条件,存储过程执行的结果如:
! {2 X/ H% I, g' t# K, u" ~
1 Z0 F% c, ]) {; W* z+ ]1 o# @而将所有的null替换成'',之后,执行结果如:
% h% h# x4 V4 y9 N! b2 m4 i8 i
* f: e% e- p1 r& P% ]1 X# x
  p  ?7 g$ w* i- V, z" A* N请帮忙解释

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
沙发
 楼主| 发表于 2010-7-30 20:02:54 | 只看该作者
【String.Empty,NULL和""的区别】( e# U# l( {* p/ J
; n; L2 Y7 c0 M' |5 n+ e; v
string.Empty不分配存储空间
+ J0 x! j% l' f! ?, o      ""分配一个长度为空的存储空间   6 R: e  x/ R( I
      所以一般用string.Empty
, A; U1 M  x6 _7 `5 C: {* J" c5 I, w2 z
为了以后跨平台,还是用string.empty
2 O. k3 g7 P) x
2 |5 H$ h4 r7 M1 \8 g/ _6 ~' e在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
4 [% n( K% m2 f: o/ S
( c# F' T& {" r# ~ string s = "";
& S' z6 O" [9 T0 K& ^string s2 = string.Empty;
' {: V) ?: `( i' O5 R7 X9 n, M
& n4 G6 f2 `( G7 V0 c6 {" W+ Jif (s == string.Empty) {; k) |  [, f! N2 G2 o6 V# C3 {4 g
  //
) j' y! U: w) \- K}
5 q: o" v& u9 g% {3 p4 d; C) Sif语句成立
: K0 m4 f  @8 y% |
* F- d( Z; P# M% ~" g
2 w$ I6 @9 Z1 Q8 X判定为空字符串的几种写法,按照性能从高到低的顺序是:/ Z4 ~$ ?/ O4 w
; n6 J4 b! \7 _0 V+ {1 m
s.Length == 0      优于 s == string.Empty      优于 s == ""
9 }4 e/ r3 K! M" g1 \* |; y7 e" c% Y* N" ~% G2 X

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

本版积分规则

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

GMT+8, 2025-10-29 06:12 , Processed in 6.061136 second(s), 6 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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