【问题标题】:How can a computed column value be calculated and then inserted into database at runtime?如何计算计算列值,然后在运行时将其插入数据库?
【发布时间】:2013-03-25 14:04:00
【问题描述】:

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

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

在这里,我也将 field3 设为数据库中的计算列,即数据库中的 field1 -field2。插入字段中的值在文本框中,所以我想在运行时计算两个文本框的差异,然后将该值插入数据库中。我怎样才能做到这一点??

【问题讨论】:

  • 检查您需要的答案,以在您的表格中创建对您有用的列...
  • 这对你有用吗?

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

    有很多方法,但我建议您创建一个带有两个参数 @field1@field2 的存储过程并从那里执行插入语句,就像您可以在存储过程中创建一个局部变量来计算值@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
    

    【讨论】:

      猜你喜欢
      • 2020-09-25
      • 2012-03-22
      • 1970-01-01
      • 2022-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-30
      • 2023-03-22
      相关资源
      最近更新 更多