如何计算计算列值,然后在运行时插入数据库?

时间:2013-03-25 14:04:01

标签: asp.net sql tsql listview calculated-columns

如何在我的aspx页面中编写插入查询,如下面的

insert into tablname(field1 ,field2, field3)values(@field1,@field2,@field1-@field2)

这里我在数据库中也使 field3 成为计算列,在数据库中是 field1 -field2 。插入字段的值在文本框中,因此我希望在运行时计算两个文本框的差异,然后将该值插入数据库中。我怎样才能实现这个目标?

2 个答案:

答案 0 :(得分:0)

无需在插入中包含字段3.

From MSDN: Unless otherwise specified, computed columns are virtual columns that are not physically stored in the table

因此,您可以在表单上显示计算值,但是当您执行实际插入数据库时​​,只需插入2个值。查询表时将计算field3的值。

答案 1 :(得分:0)

有很多方法,但我建议您创建一个包含两个参数@field1@field2的存储过程,并从那里执行insert语句,就像您可以在存储过程中创建一个局部变量一样这将计算值@field3 = @field1 - @field2并提交值(@field1, @field2, @field3)

create table test22(field1 int, field2 int, field3 int)

create proc inserttest22
    @field1 int,
    @field2 int
as
    declare @field3 int

    set @field3 = @field1 - @field2

    insert into test22 values (@field1, @field2, @field3)
go