Ejemplo n.º 1
0
        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));
                }
            }
        }
Ejemplo n.º 2
0
        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;
            }
        }