如何从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'时运行不正常错误无效,输入字符串的格式不正确。谢谢。”