c#批量更新list对象sql
注意:
1.语句中"set "后有空格,
2.最后一个if一定有值,且接连的sql字段 无 逗号
3.parameterList.Clear();
/// <summary> /// 批量更新 /// </summary> public void UpdateList(List<ProModule.Model.ept_scn> list) { StringBuilder strSql = new StringBuilder(); strSql.Append("update ept_scn set "); List<MySqlParameter> parameterList = new List<MySqlParameter>(); int x = list.Count; Hashtable SQLStringList = new Hashtable(); for (int i = 0; i < x; i++) { ProModule.Model.ept_scn scn = list[i]; int y = 0; if (scn.scn != null) { strSql.Append("scn=@scn,"); parameterList.Add(new MySqlParameter("@scn", MySqlDbType.VarChar, 50)); parameterList[y].Value = scn.scn; y = y + 1; } if (scn.is_lock != null) { strSql.Append("is_lock=@is_lock,"); parameterList.Add(new MySqlParameter("@is_lock", MySqlDbType.Int32, 11)); parameterList[y].Value = scn.is_lock; y = y + 1; } if (scn.is_audit != null) { strSql.Append("is_audit=@is_audit,"); parameterList.Add(new MySqlParameter("@is_audit", MySqlDbType.Int32, 11)); parameterList[y].Value = scn.is_audit; y = y + 1; } if (scn.is_abandon != null) { strSql.Append("is_abandon=@is_abandon,"); parameterList.Add(new MySqlParameter("@is_abandon", MySqlDbType.Int32, 11)); parameterList[y].Value = scn.is_abandon; y = y + 1; } if (scn.is_finish != null) { strSql.Append("is_finish=@is_finish,"); parameterList.Add(new MySqlParameter("@is_finish", MySqlDbType.Int32, 11)); parameterList[y].Value = scn.is_finish; y = y + 1; } if (scn.remark != null) { strSql.Append("remark=@remark,"); parameterList.Add(new MySqlParameter("@remark", MySqlDbType.VarChar, 50)); parameterList[y].Value = scn.remark; y = y + 1; } if (scn.msg != null) { strSql.Append("msg=@msg,"); parameterList.Add(new MySqlParameter("@msg", MySqlDbType.VarChar, 50)); parameterList[y].Value = scn.msg; y = y + 1; } if (scn.audit_by != null) { strSql.Append("audit_by=@audit_by,"); parameterList.Add(new MySqlParameter("@audit_by", MySqlDbType.VarChar, 50)); parameterList[y].Value = scn.audit_by; y = y + 1; } if (scn.audit_time != null) { strSql.Append("audit_time=@audit_time,"); parameterList.Add(new MySqlParameter("@audit_time", MySqlDbType.DateTime)); parameterList[y].Value = scn.audit_time; y = y + 1; } if (scn.checks != null) { strSql.Append("checks=@checks"); parameterList.Add(new MySqlParameter("@checks", MySqlDbType.Int32, 11)); parameterList[y].Value = scn.checks; y = y + 1; } strSql.Append(" where id=@id "); parameterList.Add(new MySqlParameter("@id", MySqlDbType.VarChar, 50)); parameterList[y].Value = scn.id; MySqlParameter[] parameters = parameterList.ToArray(); ; SQLStringList.Add(strSql.ToString(), parameters); parameterList.Clear(); } DbHelperMySQL.ExecuteSqlTran(SQLStringList); }
c#批量更新list对象sql的更多相关文章
- 批量更新数据小心SQL触发器的陷阱
批量更新数据时候,Inserted和Deleted临时表也是批量的,但触发器只会调用执行一次!两个概念千万不要弄混淆! 错误的理解:例如:创建在A表上创建了一个Update触发器,里面写的是Updat ...
- Hibernate批量更新和批量删除批量添加(转)
通常,在一个Session对象的缓存中只存放数量有限的持久化对象,等到Session对象处理事务完毕,还要关闭Session对象,从而及时释放Session的缓存占用的内存.批量处理数据是指在一个事务 ...
- druid + mysql + mybatis 批量更新报错
首先 批量更新报错 sql injection violation, multi-statement not allow 然后看了博客:https://blog.csdn.net/qq_3634595 ...
- LINQ To SQL在N层应用程序中的CUD操作、批量删除、批量更新
原文:LINQ To SQL在N层应用程序中的CUD操作.批量删除.批量更新 0. 说明 Linq to Sql,以下简称L2S. 以下文中所指的两层和三层结构,分别如下图所示: 准确的说,这里 ...
- SQL 将2张不相关的表拼接成2列,批量更新至另一张表
update SO_Master set LotteryNo=t2.LotteryNo,UpdateTime=GETDATE() --select sm.LotteryNo,sm.SysNo,t2.L ...
- SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int
--SQL批量更新数据库中所有用户数据表中字段类型为tinyint为int --关键说明:--1.从系统表syscolumns中的查询所有xtype='48'的记录得到类型为[tinyint]的字段- ...
- 高效批量更新 sql 字段的值(从一个表向另一个表更新)
里给出一种更高效.简洁的做法,批量更新SQL ,一句SQL就可以替代麻烦的循环过程,有MS SQLServer.Oracle.DB2下的写法--关键点:t4和t1是同一个table,primary k ...
- mybatis 的批量更新操作sql
转: mybatis 的批量更新操作sql 2018年07月23日 10:38:19 海力布 阅读数:1689 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...
- SQL批量更新数据
SQL批量更新数据 step1:导入Excel数据, 具体见百度.注意点:一列中含有float型数据和文本数据的时候,导入要将Excel中的表格属性改成文本,或在数字项目前加个单引号. step2 ...
随机推荐
- mybatis foreach 循环 list(map)
直接上代码: 整体需求就是: 1.分页对象里面有map map里面又有数组对象 2.分页对象里面有list list里面有map map里面有数组对象. public class Page { pri ...
- 【sql小坑】在group by里用select字段的别名?
背景 -- 求每个用户的拥有的产品数,其中userid需要简单split出来 SELECT split (id, '-') [ 0 ] AS userid, count(DISTINCT produc ...
- apt-get 使用指南
# apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後运行该命令.此外您需要定期运行这一命令以确保您的软件包列表是最新的. ...
- 使用MediaPlayer类和SurfaceView来播放视频
MediaPlayer可以播放视频,只需需要SurfaceView的配合,SurfaceView主要用于显示MediaPlayer播放的视频流媒体的画面渲染. SurfaceView是配合MediaP ...
- Android开发之SurfaceView
SurfaceView介绍 通常情况程序的View和用户响应都是在同一个线程中处理的,这也是为什么处理长时间事件(例如访问网络)需要放到另外的线程中去(防止阻塞当前UI线程的操作和绘制).但是在其他线 ...
- Django - cookies 会话跟踪技术
一.HTTP协议的无状态保存 两次请求之间没有关联 会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应 2.会话路径技术使用Cookie或session完成 我们知道HTTP ...
- C#利用CDO.Message发送邮件
如何引用CDO.Message? cod.message的引用位置: C:\Windows\System32\cdosys.dll CDO.Message objMail = new CDO.Mess ...
- html页面调用servlet中文乱码问题
1.需要在html中:<meta charset=utf-8" /> 2.在servlet的doPost方法中 首先:response.setContentType(" ...
- Spring AOP demo 和获取被CGLIB代理的对象
本文分为两部分:1)给出Spring AOP的一个例子(会使用CGLIB代理):2)给出获取被CGLIB代理的原始对象. 1.Spring AOP Demo 这部分参考了博文(http://www.v ...
- 【374】Adobe Acrobat 操作技巧
1. 文件内容增减 参考:如何在PDF文件中删除页面 参考:如何旋转.移动.删除和重新编号 PDF 页面 双击PDF文档,并在预览程序中打开它. 如果在其他程序(如Adobe Reader)中打开文档 ...