dim sal as double = 20000
表格:
------------------------------
NO. code formula
-----------------------------
1 101 sal * (0.2/100)
2 102 sal * (0.1/100)
--------------------------------
如何在ASP.NET代码中执行以text / nvarchar形式存储在SQL Server列中的公式?
答案 0 :(得分:0)
如果我正确理解了您的问题,则您有一个已经作为字符串存储在表中的公式,并且您希望将该公式放入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
是该公式的结果,您可以将其强制转换为double或任何代码要求。
答案 1 :(得分:0)
如果您只是想说如何显示sal嵌入的公式,而不是数字,我建议您
#include <stdio.h> /* for puts() */
#include <string.h> /* for strlen() */
int main(void)
{
char a[] = ""; /* The same as: char a[1] = ""; */
/* Possibility 1: */
if (0 == a[0]) /* alternatively use '\0' == a[0] */
{
puts("a is an empty string.");
}
/* Possibility 2: */
if (0 == strlen(a))
{
puts("a has length zero.");
}
}
如果您是说如何在查询中使用sal计算,我建议您
SET mmsales = (SELECT SUM(total_amount)
FROM transaction_tbl
WHERE MONTH(transaction_date) = MONTH(CURRENT_DATE())
AND YEAR(transaction_date) = YEAR(CURRENT_DATE()));
如果您在公式中使用变量,只需将Formula更改为Example的变量:
select NO,code,'"+sal+"'+'*'+formula From Table
OR
select NO,code,"+sal+"*formula From Table
希望这对您兄弟有帮助