示例#1
0
        int Update(string Table, List <ColumnControl> stack, BuiltCondition condition, DatabaseLogger logger)
        {
            var upd = Update(Table);

            UpdateQueryer.Pairer pairer = null;
            foreach (var col in stack)
            {
                pairer = upd.Pair(col.Key, col.Value);
            }
            Ender query = pairer;

            if (condition != null)
            {
                query = pairer.WhereCondition(condition);
            }
            try
            {
                int updated = query.Execute();
                logger.Add(new DatabaseLog {
                    Level   = updated == 0? LogLevel.Warning : LogLevel.Info,
                    Query   = query.FullQuery,
                    Message = updated == 0? "No rows were updated" : $"Updated {updated} rows"
                });
                return(updated);
            }
            catch (Exception e)
            {
                logger.Add(new DatabaseLog {
                    Level = LogLevel.Error, Query = query.FullQuery, Message = e.Message
                });
                throw;
            }
        }
示例#2
0
        public int Count(string Table, BuiltCondition Condition = null, DatabaseLogger Logger = null)
        {
            var   frm   = Select("COUNT(*)").From(Table);
            Ender ender = Condition == null ? (Ender)frm : frm.WhereCondition(Condition);

            try
            {
                using (var end = ender.QueryValue())
                {
                    Logger.Add(new DatabaseLog {
                        Level = LogLevel.Info, Message = "checked exists", Query = ender.FullQuery
                    });
                    return(end);
                }
            }
            catch (Exception e)
            {
                Logger.Add(new DatabaseLog {
                    Level = LogLevel.Error, Message = e.Message, Query = ender.FullQuery
                });
                throw;
            }
        }