public static TObject Excute <TObject>(IContext context, Func <MySqlCommand, TObject> doExcute, string querySql = "") { var queryConfig = context.GetConfig(); using (var connection = new MySqlConnection(SqlEnginerConfig.GetConnection(queryConfig.Connection))) { connection.Open(); var realSql = SqlParser.Convert(context, string.IsNullOrEmpty(querySql) ? queryConfig.Sql : querySql); using (var cmd = connection.CreateCommand()) { cmd.CommandText = realSql.Item1; if (realSql.Item2 == null || !realSql.Item2.Any()) { return(doExcute(cmd)); } foreach (var ps in realSql.Item2) { cmd.Parameters.AddWithValue(ps.Key, ps.Value); } return(doExcute(cmd)); } } }
public static object ExcuteTrann(UpdateContext context) { if (context.ExcuteFail == true) { return(false); } var config = context.Config; var conn = context.OpenTran(config.Connection); var connection = conn.Item1; var trann = conn.Item2; var realSql = SqlParser.Convert(context, config.Sql); var cmd = connection.CreateCommand(); cmd.CommandText = realSql.Item1; cmd.Transaction = trann; try { if (realSql.Item2 != null && realSql.Item2.Any()) { foreach (var ps in realSql.Item2) { cmd.Parameters.AddWithValue(ps.Key, ps.Value); } } var result = cmd.ExecuteNonQuery(); context.AddCmd(cmd); return(GetResult(context, cmd, result)); } catch (Exception ex) { context.RollBack(); throw; } }