莫言科技

全过程、自定制,轻松实现跨 旅游集散中心自助游

票务与调度系统(独立版) 整合旅游集散中心资源,提供 自助半自助游自定义套餐

面向有志创业的人士、基于云 计算理念提供的创业产品

敬请期待

查看: 2782|回复: 1

解释sqlserver中null和''的区别-凯发k8官网下载客户端

[复制链接]
发表于 2010-7-30 19:49:53 | 显示全部楼层 |
10金钱
本帖最后由 star 于 2011-6-9 21:04 编辑
[/ i' m- j; n% w/ q- o b6 y  w3 r
% w, z" f o  w# c详细解释sqlserver中对于空字符的处理
, w0 y3 t4 _  ^% d一次存储过程中,以null作为if判断条件,存储过程执行的结果如:
- f4 i8 t! o( h' ~# z  p$ c0 {. d' l2 j! w! x
而将所有的null替换成'',之后,执行结果如:; _  c. w- u. h9 z9 |/ f! [8 b
; l! f! [3 l" r& z
; ]6 y) q/ n# s; e4 l r, l
请帮忙解释

附件: 您需要 才可以下载或查看,没有帐号?
 楼主| 发表于 2010-7-30 20:02:54 | 显示全部楼层
【string.empty,null和""的区别】
5 k2 w# o  `  k9 n/ k, w" [* q* g) q: c% w/ ^% o s
string.empty不分配存储空间 _0 h% a$ j k1 h k: x! b
      ""分配一个长度为空的存储空间   
$ o( ^0 v3 u' m4 p) t      所以一般用string.empty
7 f: v# y* l! p0 z
% e7 i$ a. _- |/ u# x! z. w为了以后跨平台,还是用string.empty* k5 m! ~' l- v: _7 q% f# {

2 h) y( a6 @6 w e) q/ o1 ~6 w在 c# 中,大多数情况下 "" 和 string.empty 可以互换使用。比如:$ g* p7 ^1 h7 u @! n& d5 g! k3 \& ~

5 k9 g- [; n# `3 g string s = "";5 \8 e' d2 e, u9 k6 h, z
string s2 = string.empty;
5 e/ m) m  k, v" s2 o2 x" `: d7 v  z1 o9 |& _4 d9 i
if (s == string.empty) {. z7 p% r  k6 n& z6 l  x  z
  //
: h. |; @9 s& ^4 b' f}
5 i' w) _4 k/ c: `, e) z2 e  o bif语句成立
1 w& \% l1 y; f- x9 y  \& w  a; k/ d! x. w% z# l( w
; j) x& k3 a l$ @' c/ ]
判定为空字符串的几种写法,按照性能从高到低的顺序是:% i/ a, s0 b" l$ n
2 @8 h# r7 b  k1 t
s.length == 0      优于 s == string.empty      优于 s == ""
# {2 r& o& ^0 h! o0 y( u% |5 g& p9 e  ]
m8 q" x/ r7 v
关于string.empty和null的问题是这样的,这两个都是表示空字符串,其中有一个重点是string str1= string.empty和 string str2=null 的区别,这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的,string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,都将报错。textbox1.text的值为零长度字符串 ""。

||archiver|莫言科技 ( )    

gmt 8, 2021-3-17 07:32 , processed in 0.093754 second(s), 9 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表