晨鸟科技

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

解释SqlServer中null和''的区别

[复制链接]
跳转到指定楼层
楼主
发表于 2010-7-30 19:49:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
10金钱
本帖最后由 Star 于 2011-6-9 21:04 编辑
1 G9 q1 v- d% o$ a
; c" f/ \; H& i, d; ]( w详细解释SqlServer中对于空字符的处理
7 O1 @/ p4 D/ X9 V7 `一次存储过程中,以null作为if判断条件,存储过程执行的结果如:, m& g% I- i6 H. x0 M( P& u' N

7 [4 ^$ e( @5 L0 Q/ i/ _. }而将所有的null替换成'',之后,执行结果如:
/ @6 @+ i1 M  L  B, W% E, T
1 p- s+ r& t/ U/ }
1 A: P" b9 u1 j" d6 N; e请帮忙解释

附件: 您需要 登录 才可以下载或查看,没有帐号?注册
沙发
 楼主| 发表于 2010-7-30 20:02:54 | 只看该作者
【String.Empty,NULL和""的区别】8 D. Y# v! e7 |5 [* F& g
0 \) d5 `2 S9 t; u; h$ X
string.Empty不分配存储空间
; Z+ D7 m7 p/ _7 B. x/ s      ""分配一个长度为空的存储空间   
0 _+ m  b' f; _% T      所以一般用string.Empty% |* k! D, Y  _; a1 v+ m
  E; R' @5 v/ a0 g$ n
为了以后跨平台,还是用string.empty! a9 o2 _" S* I& I

% F! e, }8 S! h  U* h- E6 C7 p在 C# 中,大多数情况下 "" 和 string.Empty 可以互换使用。比如:
1 X* G/ B' D# K( Y8 E5 O4 I: |0 @8 P  d  h! T! R
string s = "";3 A2 \% I) e! m
string s2 = string.Empty;2 }! o- s6 ]  _# E
* }3 J  \7 m; C. }" p
if (s == string.Empty) {; d" l4 [% I# p# d
  // ( {1 w* K- n  z4 q9 K% \; W3 J" e: K
}+ [- Y+ N: O. s! ~  `* G8 S
if语句成立 - r- R3 d# y6 [: P) N
3 V- w  r- c9 X( j; d

- a6 k5 u! l1 @( s  \判定为空字符串的几种写法,按照性能从高到低的顺序是:
0 \2 T) M0 Z1 _5 Z" o1 `" o
+ [* Y* f  f% u( |5 B: ?& D5 qs.Length == 0      优于 s == string.Empty      优于 s == "" 2 t" o7 t3 n/ S; e- ~

  }0 A+ g$ I' `! b  x4 t
/ L2 I- m0 u. L* E- ]关于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 05:09 , Processed in 6.061757 second(s), 6 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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