学习PetShop4.0的小细节,顺便复习下基础

来源:互联网 发布:爱牙网络 编辑:程序博客网 时间:2024/06/10 08:58

Web.Config加密

例如对连接字符串进行加密

 加密方法C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -pef "connectionStrings" "F:/IIS/PetShop4.0/Web"

解密方法C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -pdf "connectionStrings" "F:/IIS/PetShop4.0/Web"

 

在类空的USING把多余的引用空间删掉,只留下有引用到的

 

在数据库连接操作类中使用抽象类

关于抽象类

public abstract class SqlHelper

abstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示某个类只能是其他类的基类。标记为抽象或包含在抽象类中的成员必须通过从抽象类派生的类来实现。抽象类的特性:

1)   抽象类不能被实例化

2)   可以包含抽象方法和抽象访问器

3)   不能用sealed(密封类)修饰符修改抽象类,这意味着抽象类不能被继承

4)   从抽象类派生的非抽象类必须包含继承的所有抽象方法和抽象访问的实现

 

 

关于派生和继承的区别

继承和派生两个术语的区别在于它们的主宾关系不同。  
 
继承是对于父类来说是被动的,可以描述为:父类XXX被子类XXX继承
 
   
 
而派生对于父类来说是主动的。描述为:父类XXX派生子类XXX
 
   
 
关于派生类和子类的区别:应该是继承关系的层次结构的概念区别。
 
 
派生类可以是多余一级的继承关系,
 
 
子类是一级关系。
 
 
但同时也有这样的概念:子类属于派生类。
 
   
 
例如:基类A
 
             
B直接继承于
A  
             
C直接继承于B
 
   
         
那么依据上面的说法则有:
 
   
             
A派生类B,类A被类B继承;类B派生类C   B被类C继承。              B是类A的子类,类C是类B的子类;
 
             
B和类C都是类A的派生类。  

  
使用USING()会自动调用Disponse方法

Command对象运行方法

ExecuteReader:    执行返回行的命令。为了提高性能,ExecuteReader使用Transact-SQL,  sp_executesql,系统存储过程调用命令。因此,如果用于执行像Transact-SQL    SET    语句这样的命令,ExecuteReader可能无法获得预期效果;

ExecuteNonQuery:  执行Transact-SQL    INSERTDELELEUPDATESET语句等命令,返回受影响行数,而在执行查询时则是返回一个0

ExecuteScalar:    执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行;
ExecuteXmlReader:    
 CommandText发送到    Connection    并生成一个    XmlReader    对象。  

 

错误信息: 未能加载文件或程序集或它的某一个依赖项。系统找不到指定的文件.

由于架构是模仿PETSHOP的工厂模式,利用反射实例化对象出现的错误,最初的想法认为只是WebConfig的问题,后面到网上一搜,发现问题在于命名空间的问题,设置SQLServerDAL项目文件的程序集名称为同一命名空间下,但问题仍然存在,但这是表现BIN文件下DLL文件的命名问题,删除后重新生成,OK,解决.