目前做的项目中使用了数据集的开发模式,三层结构。
其实不管是不是三层,使用了数据源控件最大的好处是:
1.以前需要多表关联查询的,现在很多都可以不用了,数据源控件会自动帮你搞定这事;)是不是很轻松愉快?
例如,A表有三个外键,ID1,ID2,ID3,只需要转换三个字段为模板,然后选择适当的控件来绑定到三个数据源控件上。OK,剩下的你就不操心了。
2.其次,数据源控件当中的objdatasource的确好用,其它数据源控件或者过于简单,或者是专用(sitemap),只有在三层结构的配合下,才能完全发挥数据源控件的威力。手工能写的,我现在还没碰到objDs不能做的。不过需要“换脑”,切换一下思维。实现方式和手工写代码的确不是很相同。我现在有一页代码,以前别人的项目后台用了1K多行,我现在只用了400行不到,这不能不说objDs在某些方面还是有优势的。
3.另外,建立adapter时,要注意生成的数据是否类型与数据库一致,尤其是char(1)类型一般会被设定为byte,如果代码正确却出错,往往是这个问题。修改一下就OK了.
4.稍闲不方便的地方。今天在做多条件的动态查询时费了些周折。例如where c=@c and b=@b and d=@d,其中B,C,D都可为空,而教程上的方式都是不能用的。研究了一下,要么在OBJDS的属性里面设置filterexpression,要么还是在生成Adapter这里想办法。前者其实并不容易实现,因为会遇到可空的情况。后一种方式就不能使用SELECT语句了。具体做法应该是先创建一个存储过程,然后在新建Adapter里选择现有查询,相应的,最好把UPDATE等操作的查询一并写好。这样,就可以顺利的使用了。