当前位置: 代码迷 >> C# >> 将值代入到一个字符串公式中解决办法
  详细解决方案

将值代入到一个字符串公式中解决办法

热度:40   发布时间:2016-05-05 04:35:38.0
将值代入到一个字符串公式中
主表中:数据库中的字段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.调用如下
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 ……

如果只是做你这一个.
可以SPLIT按(,-,),/,+这些数学操作符。
然后得到真正的参数。完全相同的再替换
  相关解决方案