- 浏览: 104771 次
- 性别:
- 来自: 广州
-
文章列表
数据库中的游标
- 博客分类:
- SQL server
1.游标的定义:Declare 游标名 [insensitive] [Scroll] cursor for select * from table,其中insensitive是指该游标所关联的数据集合也就是select* from table 查询出来的结果不会跟随该表的真正数据的改变而改变,如果不声明insensitive的话,则会同步改变; scroll是用于扩展该游标的使用操作,也就是说不声明的话就只能用Next的操作符了,如果声明则可以用First next last 等等这些操作。
2.游标是用于能够以行为单位的去处理读取处理的结果集合。这也是游标的一个好处,就是不用批量的去处理查询 ...
查询重复记录
- 博客分类:
- SQL server
查询某列重复的记录
select name from emp group by name having count(*)>1
Attribute
- 博客分类:
- .Net FrameWork
1.特性是用来向程序集中添加额外的元数据信息,比如我们向程序集中的某个类添加了特性,那么在以后用反射读取该程序集的时候,我们就可以看到这些特性描述的信息了,而且在程序运行时你可以通过读取这些信息来影响程序如何运行。
2.特性与备注comment的区别就是备注是不会编译进元数据的,而特性是会编译成程序集的元数据的一部分的。
3.简单的说特性就是程序集中的一种附着物。
4.系统中的一些特性
5.自定义的attribute
//======水之真谛=======//// 上善若水,润物无声 ///* http://blog.csdn.net/Fant ...
XML的序列化(转)
- 博客分类:
- XML
为什么要做序列化和反序列化?
.Net程序执行时,对象都驻留在内存中;内存中的对象如果需要传递给其他系统使用;或者在关机时需要保存下来以便下次再次启动程序使用就需要序列化和反序列化。
范围:本文只介绍xml序列化,其实序列化可以是二进制的序列化,也可以是其他格式的序列化。
看一段最简单的Xml序列化代码
?
1
2
3
4
5
6
7
8
9
10
11
12
class Program
{
static void Main(string[] args)
抽象方法一定要在抽象类中,抽象方法一定不可以有实现包括大括号;子类一定要实现父类的抽象方法;
虚方法可以在普通的类中,虚方法一定要由实现体,至少有大括号;子类可以不实现父类的虚方法,如果要实现可以用override;
MVVM
- 博客分类:
- .NET(C# —— WPF)
简单的说:MVVM实际上是三层架构,M层(Model实体层)、V层(View表示层,它有DataContext属性,这个属性可以使用DataTemplate模板绑定VM层的数据用来显示)、VM层(ViewModel层,对Model层进行CRUD进行操作,同时对V层提供数据绑定)
采用mvvm的好处:项目可测试更高,从而可以执行单元测试;将UI和业务的设计完全分开,View和UnitTest只是ViewModel的两个不同形式的消费者
Model的职责:主要提供基础实体的属性以及每个属性的验证逻辑;不包含数据的调用;不依赖于任何项目。
ViewModel:
V ...
进化过程:ODBC->OLEDB->ADO->ADO.Net
在ODBC之前,要访问不同的数据库就得用不同数据库的API,所以ODBC应运而生。
ODBC只能处理关系型数据库。
OLEDB不仅可以处理关系型数据库,还可以处理非关系型数据库,比如Excel。
ADO其实是对OLEDB的一个封装,更容易使用,底层还是OLEDB的东西。
ADO.net是.net平台下的,只能用于sql server;相比与OLEDB来说,性能上要快一些,但如果谈到通用性,还是OLEDB好,因为他可用于Oracle,sql server等多种数据库。
TCP 和UDP的区别
- 博客分类:
- .Net FrameWork
TCP与UDP区别
TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立
一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一
端传到另一端。
UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的
数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,
且没有超时重发等机制,故而传输速度很快
TCP与UDP的区别:
1。基于 ...
静态类 & 单例类
- 博客分类:
- .Net FrameWork
静态类中只能有静态成员。
静态类不能被实例化。
静态是密封类,不能被继承。
静态类不包含实例构造函数。
静态构造函数:不能有修饰符,因为静态构造函数都是private的;静态构造函数在类的成员被调用的时候就会触发,而且只执行一次。
什么时候用到静态类:其实用实例类也是实现静态类的功能,那么为什么有些情况还会定义静态类呢?如果定义的是实例类,那么new出来后看到的只是实例成员,看不到静态成员,如果不new那么看到又只有静态成员,所以这样的话,在开发人员对该类不了解的情况下,是不太利于开发的;如果定义的是静态类,那么他是不能new的,所以所有的成员是可以全部看到的。当然,静态类的使 ...
堆 和 栈 的区别
- 博客分类:
- .Net FrameWork
对于堆和栈的讨论可以延伸到class和struct的讨论,因为一般情况下,堆是用来存引用类型的,栈用来存值类型的;但是栈的性能要比堆的性能好:因为栈的空间是自己维护的,用完就清理,而堆则需要GC来判断该对象是不是不再是用来才将其删除,然后再整理,这个过程是耗费性能的。
接口可以包含事件、属性、索引器、静态方法、静态字段、静态构造函数以及常数,可以实现多个接口,当一个类继承某个接口时,它不仅要实现该接口定义的所有方法,还要实现该接口从其他接口中继承的所有方法。
抽象类不能实例化,必须通过继承由派生类实现其抽象方法,因此对抽象类不能使用new关键字,也不能被密封。如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类。另外,实现抽象方法由override方法来实现。
接口不可以定义字段,抽象类可以定义字段;
接口的成员不可用private或public修饰,因为都是public的,抽象类可以是private也可以是public的。
...
1.struct 是值类型,class是对象类型2.struct 不能被继承,class可以被继承3.struct 默认的访问权限是public ,而class 默认的访问权限是private .
1、进行错误隔离和安全设置隔离,一个应用程序域如果崩溃不会影响其他应用程序域,功能类似于操作系统的进程
2、在.NET环境下才产生,因为它在CLR中运行
3、应用程序域的创建和销毁所需的开销相对于系统进程小,一个进程中可以包含多个应用程序域
在理解应用程序域之前,先了解一下进程的作用,其实应用程序域的作用就相当于进程的作用;
其实,进程就是操作系统用来隔离各个不同应用程序的机制。
在.net之前,应用程序被加载到进程中,可以有多个应用程序共享一个进程,但是这样一旦一个应用程序出错就会导致整个进程崩溃;系统为每个进程分配了虚拟内存(进程不能直接访问物理量内存) ...
延迟绑定,当一个类不知道如何实现某个方法时,可以定义一个delegate让其他的类来给该delegate注册一个方法,然后实现某方法,松散耦合。
delegate是类型安全的。
可以实现跨线程访问控件或更新控件。
模板模式是属于行为型的模式
简单来说模板模式就是让某些行为操作,或者说方法延迟到子类去override实现,父类只是定义该方法的抽象方法,不同的子类有不同的实现方式,从而实现多态。