1) I would suggest you to change your approach of having one table per user. This design is not scaleable. What you can do is, have one table with columns
UserId, Component and Formula. By doing this you can filter out data based on user ids and get the component and Formula for an individual user.
UserId Component Formula
1 CA 800Rs
1 IN 50%Rest
1 Basic 40%Total
1 HRA 40%Basic
1 SA 50%Rest
2 CA 900Rs
2 IN 10%Rest
2 Basic 30%Total
2 HRA 20%Basic
2 SA 20%Rest
2) It is possible to dynamically evaluate your expressions. check the links below:
.Net Expression Evaluator using DynamicMethod[
^]
Evaluate C# Code (Eval Function)[
^]
You need to fetch the formulas from database and then feed them to your custom evaluator as described in links above.