莫言科技

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

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

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

敬请期待

查看: 2783|回复: 1

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

[复制链接]
发表于 2010-7-30 19:49:53 | 显示全部楼层 |
10金钱
本帖最后由 star 于 2011-6-9 21:04 编辑
7 q1 q5 k4 l8 s% o9 ? v- q: [7 r [ `. j" e; v
详细解释sqlserver中对于空字符的处理
3 u6 `) p& h% b9 i' h! z5 o8 s一次存储过程中,以null作为if判断条件,存储过程执行的结果如:
& `7 ~6 \- ~: f, j3 ^" _: z) t: f8 p' v
而将所有的null替换成'',之后,执行结果如:
  a2 \- v3 v- d3 q  c( u% o
( x: y: ]$ {* y- u5 |( x& e
! l. v! i# f7 c* ~: a: _请帮忙解释

附件: 您需要 才可以下载或查看,没有帐号?
 楼主| 发表于 2010-7-30 20:02:54 | 显示全部楼层
【string.empty,null和""的区别】
" g, x# m4 g9 ]# ?; v
9 f4 e' h4 l' r6 d4 a' w3 o4 h; [string.empty不分配存储空间
& v7 a! f  ?1 v( e/ r; w      ""分配一个长度为空的存储空间   , u9 l" r; f) k$ h& p$ c1 m
      所以一般用string.empty
( x3 o5 `6 ?) i7 _6 j" k& v- a4 u; d0 a2 m
为了以后跨平台,还是用string.empty
$ {; l9 f" g% }8 h& z% ~7 {
0 [2 b* {0 a, u" o" t在 c# 中,大多数情况下 "" 和 string.empty 可以互换使用。比如:3 c6 `' h( ~, p) b& d6 c

) `& {2 y1 x5 \2 g1 q: a; u string s = "";' a, e' r3 j: s9 v; v7 o4 k" n
string s2 = string.empty;
1 j9 e) s0 h6 d- a& `* f! t3 ^( {. n
if (s == string.empty) {& u; p5 o' ]' b0 d2 a5 q
  //
0 |# y% f% }) b2 `0 }7 y}/ b& k) j t, z* {4 c5 h, w- r$ y
if语句成立 1 ]) a# \% p) a( k2 @1 d
$ e, r" q4 `% e! \

" |% g7 y) m `9 {: u判定为空字符串的几种写法,按照性能从高到低的顺序是:
_2 \) ]1 b% ~" z2 q4 |5 v. c; c7 w" p; v- {0 d: h
s.length == 0      优于 s == string.empty      优于 s == "" 8 x7 _, x/ s, o2 s$ n8 y
c$ e0 n' ?2 g' w: l/ j e. d

' p) u# p$ r5 r$ y: d关于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.063479 second(s), 9 queries , wincache on.

powered by x3.2

© 2001-2013

返回列表