public override IDbCommand UPDATE(DBConnection db, string tableName, int rowId, DBItem item) { MySqlCommand command = new MySqlCommand(); var columnTuples = ColumnsToTuple(db.Application, tableName, item.getFullColumnNames()).Where(ct => ct.Item2 != PrimaryKey); command.CommandText = $"UPDATE {ToRealTableName(db.Application, tableName)} SET {string.Join(", ", columnTuples.Select(pair => $"{ToRealTableName(db.Application, pair.Item1)}.{AddQuote(pair.Item2)}=@{command.AddParam(pair.Item2, item[$"{pair.Item1}.{pair.Item2}"])}"))} WHERE {ToRealTableName(db.Application, tableName)}.{AddQuote(PrimaryKey)}=@_{PrimaryKey}_;"; command.Parameters.Add(new MySqlParameter($"_{PrimaryKey}_", rowId)); return(command); }
public DBTable Delete(DBItem item) { Manager <Condition> conditions = new Manager <Condition>(_db); conditions.i.tabloidName = Name; foreach (string columnName in item.getFullColumnNames()) { conditions.Start(); conditions.i.column = columnName; conditions.i.operation_params.Add(item[columnName]); conditions.Next(); } _db.Commands.Enqueue(_db.CommandSet.DELETE(_db, Name, conditions)); return(this); }