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

如何从ASP.NET执行text/nvarchar SQL Server中的变量,asp.net,sql-server,Asp.net,Sql Server,表: dim sal as double = 20000 如何在我的ASP.NET代码中执行以text/nvarchar格式存储在SQL Server列中的公式?如果我正确理解了您的问题,您有一个已作为字符串存储在表中的公式,您希望将该公式输入ASP.NET应用程序并在代码中执行 如果是这样,那么最快的方法就是在SQL Server中执行公式,替换变量,然后从中获取值 如果sal已存储在公式中(与您在示例中提供的相同),则需要执行以下操作: --------------------------

表:

dim sal as double = 20000

如何在我的ASP.NET代码中执行以text/nvarchar格式存储在SQL Server列中的公式?

如果我正确理解了您的问题,您有一个已作为字符串存储在表中的公式,您希望将该公式输入ASP.NET应用程序并在代码中执行

如果是这样,那么最快的方法就是在SQL Server中执行公式,替换变量,然后从中获取值

如果
sal
已存储在公式中(与您在示例中提供的相同),则需要执行以下操作:

------------------------------
NO. code       formula
-----------------------------
1   101        sal * (0.2/100)        
2   102        sal * (0.1/100)  
--------------------------------
上面的示例将获取公式并用参数
@sal
替换
sal
,并将该公式保存在
公式中。然后,我们只需切换查询,并为参数提供代码中已有的
sal
值,然后调用
command.ExecuteScalar()
将值保存在
返回值中


现在,
returned\u value
是该公式的结果,您可以将其转换为double或代码要求的任何形式

如果我正确理解了您的问题,那么您有一个公式已经作为字符串存储在表中,您希望将该公式放入ASP.NET应用程序中,并在代码中执行它

如果是这样,那么最快的方法就是在SQL Server中执行公式,替换变量,然后从中获取值

如果
sal
已存储在公式中(与您在示例中提供的相同),则需要执行以下操作:

------------------------------
NO. code       formula
-----------------------------
1   101        sal * (0.2/100)        
2   102        sal * (0.1/100)  
--------------------------------
上面的示例将获取公式并用参数
@sal
替换
sal
,并将该公式保存在
公式中。然后,我们只需切换查询,并为参数提供代码中已有的
sal
值,然后调用
command.ExecuteScalar()
将值保存在
返回值中


现在,
returned\u value
是该公式的结果,您可以将其转换为double或代码要求的任何形式

如果您只是想说明如何将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 
select NO,code,'"+sal+"'+'*'+formula From Table
如果你的意思是如何在查询中使用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 
select NO,code,'"+sal+"'+'*'+formula From Table
如果在公式中使用变量,只需将公式更改为变量,例如:

select NO,code,"+sal+"*formula From Table


我希望这能帮助你兄弟

如果你只是想知道如何将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 
select NO,code,'"+sal+"'+'*'+formula From Table
如果你的意思是如何在查询中使用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 
select NO,code,'"+sal+"'+'*'+formula From Table
如果在公式中使用变量,只需将公式更改为变量,例如:

select NO,code,"+sal+"*formula From Table



我希望能帮你兄弟

你的查询我不清楚,你能详细说明一下吗?表中有记录,我想在字段公式值sal为20000时执行这个记录sal*(0.2/100),如果在asp.net/vb.net中循环,如何得到值sal*(0.2/100)=或20000*(0.2/100),谢谢,这在字段内是不可能的,您已经在代码(sp/C#/vb.net)中应用了该公式,并将值保存在表中。您的查询对我来说不清楚,请详细说明一下。在表中有记录,我想在字段公式值sal为20000时执行此记录sal*(0.2/100),如何获得值sal*(0.2/100)=或20000*(0.2/100)如果在asp.net/vb.net中执行do-it循环,则在代码(sp/C#/vb.net)中应用该公式的字段中不可能执行此操作然后将值保存在表中。后者会对表有很大的信任。如果有人可以更改表中
公式的值,或者
插入新行,那么它就会被注入。@Larnu,想想看,我想不出另一种更安全的方法(也许其他人会这样做?),所以我删除了它。再次感谢。无法显示sal*(0.2/100)的结果,只显示返回的值@sal*(0.2/100)结果sal*(0.2/100)是40@ahmadsubuhanlubis我的错,忘记在公式之前添加
“SELECT”
前缀。因此公式应该类似于
SELECT@sal*(0.2/100)
,ExecuteScalar将对其求值并返回字符串形式的
40
。我已尝试不更改,结果返回值=@sal*(0.2/100),但未对@sal*(0.2/100)求值=40后者在表中会有很多信任。如果有人可以更改表中
formula
的值,或者
INSERT
新行,那么它就会被注入。@Larnu,想想看,我想不出另一个更安全的方法了(也许其他人会这么做?),所以我删除了它。再次感谢。无法显示sal*(0.2/100)的结果,只显示返回的值@sal*(0.2/100)结果sal*(0.2/100)是40@ahmadsubuhanlubis我的错,忘记在公式之前添加
“SELECT”
前缀。因此公式应该类似于
SELECT@sal*(0.2/100)
,ExecuteScalar将对其求值并返回字符串形式的
40
。我已尝试不更改,结果返回了\u value=@sal*(0.2/100),但未求值@sal*(0.2/100)=40执行“附加信息:从字符串转换”选择时出现无法正常运行错误,'“键入'Double'无效,输入字符串的格式不正确。thankscan在执行“附加信息:从字符串“选择”转换为键入'Double'时运行不正常错误无效,输入字符串的格式不正确。谢谢。”