/// <summary> /// 保存 /// </summary> /// <param name="rec">操作值</param> /// <param name="transaction">是否启用事务</param> /// <param name="rex">返回值</param> /// <returns></returns> public ReResult SaveBeans(List <Curd> rec, bool transaction = false, ReResult rex = null) { rex = rex ?? new ReResult(); var list = new List <Record>(); var con = Connection(); if (con.code != 200) { return(rex.setCode(con.code, con.msg)); } MySqlTransaction trans = null; if (transaction) { trans = conn.BeginTransaction(); } try { var sqls = new List <string>(); rec.ForEach(x => { if (x.op == Operation.Insert && !x.list.IsBlank()) { sqls.AddRange(x.getSqlList()); } else { var ss = x.getSql(); if (!ss.IsBlank()) { sqls.Add(ss); } } }); foreach (var sql in sqls) { if (sql.IsBlank()) { if (transaction && trans != null) { trans.Rollback(); } list.Add(new Record("success", "false").Put("message", "sql语句错误")); return(rex.setCode(400, "sql语句错误").setData(list)); } MySqlCommand cmd = new MySqlCommand(sql, conn); //执行ExecuteReader()返回一个MySqlDataReader对象 var i = cmd.ExecuteNonQuery(); if (i > 0) { list.Add(new Record("Success", "true").Put("Message", "").Put("Sql", sql)); continue; } if (transaction && trans != null) { trans.Rollback(); } list.Add(new Record("Success", "false").Put("Message", "保存操作失败").Put("Sql", sql)); return(rex.setCode(400, "操作失败").setData(list)); } if (transaction && trans != null) { trans.Commit(); } return(rex.setData(list)); } catch (Exception ex) { if (transaction && trans != null) { trans.Rollback(); } return(rex.setCode(500, ex.Message).setData(list)); } finally { Close(); } }