如何从 ASP.NET 执行文本/nvarchar SQL Server中的变量


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是该公式的结果,您可以将其转换为双精度或代码所需的任何内容。

最新更新