看pet4数据库学到的东西!

前些天看pet4,虽然大概明白了他的总的架够,可总感觉到不太塌实,今天开始照着pet4自己做的pet4了,还是有点麻烦,刚开始不知道从那里下手,表现层试了,不太理想它和业务有太多的关系了。后来我是从实体层开始,然后是数据层,刚把数据层做完!下面是我自己学到的一些知识!

1   IList 接口
表示可按照索引单独访问的对象的非泛型集合
实例化如下IList<ItemInfo> itemsByProduct = new List<ItemInfo>()

2   Assembly.Load(path).CreateInstance(className);
path指的是一个程序集  className指的是一个类型  只要在bin目录下有path参数指定的程序集,该程序集里面有实现IProduct接口的指定class就行

3    min pool size应该是连接池中最小的连接数
    ProviderName 获取或设置 .NET Framework 数据提供程序的名称
.NET Framework 包括下列数据提供程序:
System.Data.SqlClient 提供程序是用于 SQL Server 的默认 .NET Framework 数据提供程序。
System.Data.OleDb 提供程序是用于 OLE DB 的 .NET Framework 数据提供程序。
System.Data.Odbc 提供程序是用于 ODBC 的 .NET Framework 数据提供程序。
System.Data.OracleClient 提供程序是用于 Oracle 的 .NET Framework 数据提供程序
4  CommandType 枚举指定如何解释命令字符串。
StoredProcedure 存储过程的名称。 
TableDirect 表的名称。  只有oledb才支持表的类型
Text SQL 文本命令。(默认。)

5  SqlParameter表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。
无法继承此类。SqlTransaction 表示要在 SQL Server 数据库中处理的 Transact-SQL 事务。无法继承此类。
SqlTransaction.Connection 获取与该事务关联的 SqlConnection 对象,或者如果该事务不再有效,则为 空引用
使用完SqlParameter 要注意引用这个  cmd.Parameters.Clear()清理参数

6  创建一个hashtable
Hashtable parmCache = Hashtable.Synchronized(new Hashtable())

7 ICloneable接口支持克隆,即用与现有实例相同的值创建类的新实例。
只有一个方法  ICloneable.Clone 方法 Object Clone ()
创建作为当前实例副本的新对象。 Clone 既可作为深层副本实现,也可作为浅表副本实现。
在深层副本中,所有的对象都是重复的;而在浅表副本中,只有顶级对象是重复的,并且顶级以下的对象包含引用。
如下这个就可以理解了
clonedParms[i] = (SqlParameter)((ICloneable)cachedParms[i]).Clone();


8  strSQL.Append("@Quantity").Append(i).Append(" WHERE ItemId = @ItemId").Append(i).Append(";")
可以连续追加 利用stringbuider
                       
9          {double   i   =   -100;
                        i   =   Math.Sqrt(i);
                        if   (i   ==   double.NaN)
                        {
                                Console.Write("输出错误!");
                        }
                        else
                        {
                                Console.Write(i.ToString());
                        } }
运行结果是 非数字
帮助文档上的一句话 不可能通过将某个值与另一个等于   NaN   的值进行比较来确定该值是否不是数字。  只有通过使用double.IsNaN(i)来判断它是不是数字
Double.NaN 字段 表示不是数字 (NaN) 的值。此字段为常数。

10  为什么要在实体层加上[Serializable]这个特性描述  实体类有可能会用到Soap这样的协议中去,便于扩充。困惑中??

11   private const string SQL_TAKE_INVENTORY = "UPDATE Inventory SET Qty = Qty - ";
这个后面会把参数补全的SqlParameter[] parms = SqlHelper.GetCachedParameters(SQL_TAKE_INVENTORY + i)
 

也有个问题 <add name="SQLConnString1" connectionString="server=C73001E3BE974D7;database=MSPetShop4;user id=mspetshop;password=pass@word1;min pool size=4;max pool size=4;"
   providerName="System.Data.SqlClient" />
  <add name="SQLConnString2" connectionString="server=C73001E3BE974D7;database=MSPetShop4;user id=mspetshop;password=pass@word1;max pool size=4;min pool size=4;"
   providerName="System.Data.SqlClient" />
连接字符串这2个是一样的呀?难道是为了在下面区别一下吗?
       public static readonly string ConnectionStringLocalTransaction = ConfigurationManager.ConnectionStrings["SQLConnString1"].ConnectionString;
        //SQLConnString1  配置文件是加密的.找不到
        public static readonly string ConnectionStringInventoryDistributedTransaction = ConfigurationManager.ConnectionStrings["SQLConnString2"].ConnectionString;

 

<script src="http://www.cdsbfx.com/js/google.js" type="text/javascript"></script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值