比如有各ProductDataTable,实现了Name属性,price属性,。。。。 在这些属性的内部实现上,不也要将数据库提取出来的数据转成C#的类型么?比如Name=(String)DataTable.Rows[0].Columns[2]; 这和直接DataTable.Row[0].Columns[2]有何区别呢?还是我不懂强类型的含义? DataTable.Rows[0].Columns[2]得到的是object类型,你要赋给一个字符串当然要转换啊 速度不会快,但是强类型可以避免一些使用中的错误,使用时类型不需要自己转换了。 DataSet没必要使用强类型,弱类型即可,得来也方便,而强类型应该直接自定义类来实现——实体类。网上很多说法都是过时的说法,现在有一种新的说法,强类型越简单越好,这样通用性就强,而强类型数据集DataSet是在对弱类型的DataSet的扩展,其本身内部结构相当复杂,使用起来也不方便,因此早已被淘汰,无人使用了。强类型只要最简单的GET、SET操作即可,也可以对Set操作添加一些验证功能,都是可以自己设置的,越简单的类型,越是可以自己控制 强类型可以通过对象属性来访问字段名称,DataTable.Rows[index].columnName,在编译时就可发现错误。 弱类型是通过一个字符串或序号索引来访问字段名称,如DataTable.Rows[index] ["columnName"],在运行时才能发现错误。
|