使用“动软代码生成器”需要注意的问题
2012-02-27 13:35
274 查看
在日常开发中,编写三层架构代码是个很枯燥的活,常用的都是一些增删改查,无非表名称不一样而已。如果数据库已经建好,使用动软代码生成器来自动生成底层三层代码是个很好的方法。但在使用过程中,我也发现了一些问题:
1.UPFATE
用动软生成的update语句都类似
这就产生一个问题,如果更新的仅仅是其中一个字段,则其他字段都会被更新为空字符。解决的办法,是将其修改为
1.UPFATE
用动软生成的update语句都类似
/// <summary> /// 更新一条数据 /// </summary> public void Update(Maticsoft.Model.payment model) { StringBuilder strSql=new StringBuilder(); strSql.Append("update payment set "); strSql.Append("fj_id=@fj_id,"); strSql.Append("pay_amount=@pay_amount,"); strSql.Append("pay_date=@pay_date,"); strSql.Append("purpose=@purpose,"); strSql.Append("verify=@verify"); strSql.Append(" where id=@id "); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int,4), new SqlParameter("@fj_id", SqlDbType.Int,4), new SqlParameter("@pay_amount", SqlDbType.Money,8), new SqlParameter("@pay_date", SqlDbType.DateTime), new SqlParameter("@purpose", SqlDbType.VarChar,50), new SqlParameter("@verify", SqlDbType.Bit)}; parameters[0].Value = model.id; parameters[1].Value = model.fj_id; parameters[2].Value = model.pay_amount; parameters[3].Value = model.pay_date; parameters[4].Value = model.purpose; parameters[5].Value = model.verify; DbHelperSQL.ExecuteSql(strSql.ToString(),parameters); }
这就产生一个问题,如果更新的仅仅是其中一个字段,则其他字段都会被更新为空字符。解决的办法,是将其修改为
/// <summary> /// 更新一条数据 /// </summary> public void Update(Maticsoft.Model.payment model) { StringBuilder strSql=new StringBuilder(); strSql.Append("update payment set "); strSql.Append("fj_id=ISNULL(@fj_id,fj_id),"); strSql.Append("pay_amount=ISNULL(@pay_amount,pay_amount),"); strSql.Append("pay_date=ISNULL(@pay_date,pay_date),"); strSql.Append("purpose=ISNULL(@purpose,purpose),"); strSql.Append("verify=ISNULL(@verify,verify),"); strSql.Append(" where id=@id "); SqlParameter[] parameters = { new SqlParameter("@id", SqlDbType.Int,4), new SqlParameter("@fj_id", SqlDbType.Int,4), new SqlParameter("@pay_amount", SqlDbType.Money,8), new SqlParameter("@pay_date", SqlDbType.DateTime), new SqlParameter("@purpose", SqlDbType.VarChar,50), new SqlParameter("@verify", SqlDbType.Bit)}; parameters[0].Value = model.id; parameters[1].Value = model.fj_id; parameters[2].Value = model.pay_amount; parameters[3].Value = model.pay_date; parameters[4].Value = model.purpose; parameters[5].Value = model.verify; DbHelperSQL.ExecuteSql(strSql.ToString(),parameters); }
相关文章推荐
- 使用“动软代码生成器”需要注意的问题
- 使用sqlyog自动备份时需要注意的问题
- 解释下带xmlns的xml 使用Xpath时需要注意的问题
- xFire在使用Spring2.5,设定文件配置记述中需要注意的问题
- 使用angularjs首先需要注意的问题
- C#中ref和out参数使用时需要注意的问题
- 使用接插件需要注意的问题
- jquery parent()方法在table标签中使用需要注意的一个问题
- RealView MDK中使用内联函数时需要注意的问题
- 使用cloneNode时需要注意的问题
- Html使用自定义光标的一点需要注意的小问题。
- php中使用$_REQUEST需要注意的一个问题
- 使用string.Format需要注意的一个性能问题
- Oracle使用并行索引需要注意的问题
- 使用Cocos2d-x的LuaBridge接入OC代码时需要注意的问题
- 使用IE9调试各版本中的适应性问题需要注意的浏览器模式和文档模式
- sprintf使用时需要注意的问题
- 使用单例模式需要注意的几个问题
- 使用std::sort需要注意的问题
- Firefox中Javascript使用event对象需要注意的问题