日期:2014-05-16  浏览次数:20722 次

关于工资计算公式的问题,关于工资计算公式的问题
decimal item1=12;
decimal item2=16;

string gs="item1+item2";//计算公式
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControlClass();
sc.Language = "JavaScript";
MessageBox.Show(sc.Eval(gs).ToString());//得到的是item1+item2,错误
MessageBox.Show(sc.Eval(item1+item2).ToString());//可以得到28,正确
请问应该如何才能得到28,像这种公式是用户自定义的
------解决方案--------------------
MessageBox.Show(sc.Eval(gs).ToString());//得到的是item1+item2,错误

这个错误是因为,你没有把 item1, item2一起传递过去,所以想让他正确,请在执行前多定义几条,把东西传递过去

他大体类似

var item1=10
var item2=20

var res=eval("item1+item2");

所以如果你不把item1,item2一起传递过去,脚本引擎要么认为木有定义,要么认为都是0
------解决方案--------------------
DataTable可以计算列