They are fundamentally different algorithmically. However, there is considerable overlap in the problem areas for which each is appropriate. For example, knapsack and travelling salesmen problems can be solved by both approaches. Integer programming refers to linear programming where some of the variables are restricted to integer values. Many algorithms exist for the solution of these problems and the most prominent will be discussed.
Dynamic programming is more a philosophy than a particular algorithm.
The utilization of this philosophy will be explained in numerous application areas. Computational requirements and refinements will be discussed. Dreyfus, Stuart. and Law, Avriel. The Art and Theory of Dynamic Programming , Academic Press. Nemhauser, George L. and Wolsey, Laurence A., Integer and Combinatorial Optimization , Wiley.