dim sal as double = 20000
桌子:
------------------------------
NO. code formula
-----------------------------
1 101 sal * (0.2/100)
2 102 sal * (0.1/100)
--------------------------------
如何在我的 ASP.NET 代码中执行公式,该公式在SQL Server列中以文本/nvarchar的形式存储?
如果您只是想如何将 sal 嵌入的公式显示为文本而不是数字,我建议您
select NO,code,'"+sal+"'+'*'+formula From Table
如果您的意思是如何使用 sal 在查询中进行计算,我建议您
select NO,code,"+sal+"*formula From Table
如果您在公式中使用变量,只需将公式更改为变量,例如:
select NO,code,'"+sal+"'+'*'+'(0.2/100)' From Table
或
select NO,code,"+sal+"*(0.2/100) From Table
我希望这对你兄弟有帮助
如果我正确理解了您的问题,那么您有一个已经作为字符串存储在表中的公式,并且您希望将该公式放入您的 ASP.NET 应用程序中并在代码中执行它。
如果是这种情况,那么最快的方法是在SQL Server中执行公式,替换变量,然后从那里获取值。
如果sal
已经存储在公式中(与您在示例中提供的公式相同(,则需要执行以下操作:
Dim sal as double = 20000
Dim returned_value As String = ""
Dim sql As String = "SELECT formula FROM FormulaTable WHERE Code = 101"
Using connection As New SqlConnection(ConnectionString)
command As New SqlCommand(sql, connection)
connection.Open()
Dim formula As String = command.ExecuteScalar().toString()
connection.Close()
sql = "SELECT " + formula.Replace("sal", sal.toString())
connection.Open()
returned_value = command.ExecuteScalar().toString()
connection.Close()
End Using
上面的示例将获取公式并将sal
替换为参数@sal
并将该公式保存在formula
中。然后,我们只需切换查询,并为参数提供代码中已有的sal
值,并调用command.ExecuteScalar()
将值保存在returned_value
中。
现在,returned_value
是该公式的结果,您可以将其转换为双精度或代码所需的任何内容。