存储过程——优或劣

JerryXia 发表于 , 阅读 (1,738)
看了一篇文章,谈论该不该在项目中使用存储过程代替SQL语句。看后有一些感想,因为最近工作接触到一个系统,业务过程几乎完全是用存储过程实现的。随着系统的不断发展,新的需求逐渐难以支持。这个原因当然很复杂,即使不使用存储过程,可能也有同样的问题。但是既然谈到具体技术上,就来看一下一个主要以存储过程实现的系统到底有哪些问题。存储过程和嵌入程序中的SQL哪个更好,要用一种合理的比较方式来比,不能拿写的好的存储过程和写的烂的程序比,当然也不能拿写的烂的存储过程和写的好的程序比。我们先假设开发人员具有... 阅读全文

该不该在项目中使用存储过程代替SQL语句(二)

JerryXia 发表于 , 阅读 (2,294)
看着这个古老的问题一再激起大家的兴趣,不仅也想参与进来。诚然SP的选择与否属于一个技术问题,但讨论用SP好还是直接写SQL语句好,则必然成为一个哲学问题,或者一个方法论的问题。无数事例和先贤都告诉我们,单纯的说好与不好都是不可能长久正确的。技术在不断的进步,今天的观点和昨天的观点就有可能不同,所以说,哪个好?没有一个是绝对好的,完全要根据你的应用需求来选择。存储过程最大的好处是什么,就是性能。还有就是复杂的处理情况。因此,如果不是为了考虑性能,一般情况下我不喜欢用存储过程。因为存储过程带来... 阅读全文

DotNET 2.0中的字符串比较

JerryXia 发表于 , 阅读 (1,844)
平时编写代码的时候,字符串可能是大家接触得比较多的,所使用的字符串操作也应该得比较多的.在字符串比较方面,DOTNET2.0新增了一个枚举StringComparison:namespace System { public enum StringComparison { CurrentCulture, CurrentCultureIgnoreCase, InvariantCulture, Invariant... 阅读全文

C#-可空类型

JerryXia 发表于 , 阅读 (2,743)
可空类型是 System.Nullable 结构的实例。可空类型可以表示其基础值类型正常范围内的值,再加上一个 null 值。例如,Nullable<Int32>,读作“可空的 Int32”,可以被赋值为 -2147483648 到 2147483647 之间的任意值,也可以被赋值为 null 值。Nullable<bool> 可以被赋值为 true 或 false,或 null。在处理数据库和其他包含可能未赋值的元素的数据类型时,将 null 赋值给数值类型或布尔... 阅读全文

理解C#中的委托

JerryXia 发表于 , 阅读 (2,162)
委托的定义:委托是一种在对象里保存方法引用的类型,同时也是一种类型安全的函数指针。委托的优点:压缩方法的调用。合理有效地使用委托能提升应用程序的性能。用于调用匿名方法。委托的声明:委托应使用public delegate type_of_delegate delegate_name()的形式来声明。public delegate int mydelegate(int delvar1,int delvar2) 注意点:可以在不带参数或参数列表的情况下声明委托。应当遵循和声明方法一样的语法来声... 阅读全文

该不该在项目中使用存储过程代替SQL语句

JerryXia 发表于 , 阅读 (2,579)
存储过程的好外,我就不多说了,想必各位都已了然于胸。当然,存储过程也有不少坏处:当存储过程数量越来越多的时候,在众多存储过程中找到想要修改的存储过程是一件麻烦的事.如果用嵌入式SQL语句,可以在修改代码时,顺便就修改了数据库操作语句,方便针对这两个所谓的缺点,我提出我的一些看法:如果说存储过程多了,不好找,那你该检讨一下您的命名习惯是否规范是否达意,如果是多人合作的团队,大家更应该对于存储过程的命名有一致的规则,当然,不只存储过程需要这样,其他部分也都要需要这样.好的存储过程命名最好能包含... 阅读全文

泛型技巧系列:如何提供类型参数之间的转换

JerryXia 发表于 , 阅读 (2,060)
从今天起,我将分享一些我在.NET泛型方面的研究心得。这些心得大都是我在设计VBF中思考发现的,还受了很多C++模板与JAVA泛型的启发。其中相当多的技巧和概念都是大部分“深入C# 2.0”类文章也见不到的。我考虑把其中概念性的部分系统地整理成书,而技巧性的东西则通过我这个系列不定期地分享到Blog上。希望用到.NET泛型的人能从我这些技巧中受益。首先我要介绍的技巧是如何提供类型参数之间的转换。我们知道,.NET泛型将每个类型参数理解为一个独立的类型。如果不通过约束指定,编译器不会对类型参... 阅读全文