日期:2014-05-18  浏览次数:20915 次

将值代入到一个字符串公式中
主表中:数据库中的字段formula中存储的字符串公式是:(((V1-V2)*C*0.09)/(V*5/100))*100
子表中:Code的值和Parvlaue值分别是
  Code Parvlaue
  V 10
  C 10
  V2 10
  V1 15
注:公式里面的值是不固定的,有可能下次就是换成V12,X呀之类的

我要的结果是将值代入到字符串里面,然后计算出结果
例:(((15-10)*10*0.09)/(10*5/100))*100 = 900

------解决方案--------------------
1.查询数据库拼出计算字符串,也就是(((15-10)*10*0.09)/(10*5/100))*100 
2.添加COM引用
http://blog.csdn.net/yxbsmx/article/details/5268396
3.调用如下
C# code
MSScriptControl.ScriptControl sc = new MSScriptControl.ScriptControl();
                sc.Language = "JavaScript";
                MessageBox.Show(sc.Eval("(((15-10)*10*0.09)/(10*5/100))*100").ToString());//900

------解决方案--------------------
探讨
引用:

SQL code
DECLARE @S NVARCHAR(4000)
SET @S='(((,V1,-,V2,)*,C,*0.09)/(,V,*5/100))*100'
--> 测试数据: #TB
if object_id('tempdb.dbo.#TB') is not null drop table #TB
create table #TB (Code ……