首页 > 解决方案 > Datatable 从数据库中计算字符串

问题描述

我想要实现的是从数据库中获取公式表达式并在运行时执行它。阅读后我发现以下内容;

    // Consider these values are coming from the DB
        int voltageln1 = 220;
        int voltageln2 = 220;
        int voltageln3 = 220;
        int currentln1 = 10;
        int currentln2 = 10;
        int currentln3 = 10;


        string formula = $"(({voltageln1}*{currentln1}*{0.85})+({voltageln2}*{currentln2}*{0.85})+({voltageln3}*{currentln3}*{0.85}))";
        DataTable dt = new DataTable();
        double result = Convert.ToDouble(dt.Compute(formula, ""));
        MessageBox.Show("Result:" + result);

当字符串公式预先具有 $ 符号时,上面的代码可以正常工作。

但是我从数据库中收到的内容如下,前面没有 $ 符号。

string thatcamefromtheDB = "(({voltageln1}*{currentln1}*{0.85})+({voltageln2}*{currentln2}*{0.85})+({voltageln3}*{currentln3}*{0.85}))";

有没有办法以某种方式添加该 $ 符号或格式化该文本?

标签: c#datatable

解决方案


您可以简单地尝试 Double.Parse:

  double data= ((Double.Parse(voltageln1)*Double.Parse(currentln1)*0.85)+(Double.Parse(voltageln2)*Double.Parse(currentln2)*0.85)+(Double.Parse(voltageln3)*Double.Parse(currentln3)*0.85))";

推荐阅读