大家在实际的项目中,使用 sqlcommandbuilder 自动生成的更新语句吗?感觉不如自已写好呀?
-------------------------------------------------------------
本人初学,昨天一直想用sqlcommandbuilder 生成更新语句去处理。但是感觉到 这个对象生成的更新语句功能太弱了。1.只有当查询语句是从单一表查询的,才能用sqlcommandbuilder 对象来生成更新语句,比如 
select a.xx,b.yy
from tb a inner join tb1 b 这种形式的查询语句用sqlcommandbuilder 根本无法生成更新语句,
但是实际当中,查询多数是从多个表联合查询的。2.我发现这个sqlcommandbuilder 生成的更新语句,是每个字段都更新,这个我也接受不了,因为假如一个表有10个字段,
我不可能全部更新10个字段,一般情况下只更新其中的一两个字段,但是用sqlcommandbuilder 生成更新后,
sqldataadapter.update(table)后,全部字段都得到更新,没有必要呀,何必重写一遍呢?
所以我有点疑惑了,大家在实际的项目中,真的在用这个sqlcommandbuilder 对象吗?
还是老老实实的自已写sql 更新语句呢?
我总结了一下,自已写update更新语句也有好有坏,分别如下
好处:
1.灵活性高,对于多表联合的查询,我可以只更新其中的一个表,或者更新多个表,完全由我的代码控制。
2.只更新必要的字段,只读的字段不会去重复更新。省去了数据库表中的 a=a,b=b,c=c这种无意义覆盖操作。
坏处:
1.自已要写代码,而且要处理诸如字符串中有单引号的情况(不处理单引号,会发生更新失败)