【问题标题】:Calculation help for Database Column Sum to ASP.NET数据库列总和到 ASP.NET 的计算帮助
【发布时间】:2012-06-26 15:13:55
【问题描述】:

在我的 ASP.NET 页面中,我有一个 gridview,当您进入编辑模式时,您可以手动输入值以保存到数据库中。我的数据库列之一是“金额”列,其中包含与特定年份的用户条目有关的不同金额。

我正在寻找的是一个计算,无论是在我的 SQL 过程中还是在后面的代码中,将用户条目的数量一起添加到数量列中,并将它们全部显示在我的 asp.net 页面上的文本框中流体运动。这是我在sql中用于将数据存储到数据库的代码如下:

ALTER PROCEDURE [dbo].[InsertData]
@amt money,
@date datetime,
@cmmt nvarchar(255),
@int nvarchar(3)
AS
BEGIN
SET NOCOUNT ON;

INSERT INTO [DB1].[dbo].[BE_AdjustBudgetTbl]
([BE_Adj_AMOUNT],[BE_Adj_APPRV_D],[BE_Adj_COMMENT],[BE_Adj_Initials]) 
VALUES (@amt,@date,@cmmt,@int)

END

目前,我只是将输入的值从金额列中提取并将它们粘贴到我的文本框中,而没有计算部分,如果有多个记录,这将不起作用:

 txtTotal.Text = txtTotal.ToString + amt
 Dim calc As Double = Convert.ToString(Double.Parse(txtIntAppr.Text) + txtTotal.Text)
 txtTotalAll.Text = Convert.ToInt32(calc)

【问题讨论】:

    标签: asp.net sql database stored-procedures


    【解决方案1】:

    调整你的存储过程来进行计算

    ALTER PROCEDURE [dbo].[InsertData] 
    @amt money, 
    @date datetime, 
    @cmmt nvarchar(255), 
    @int nvarchar(3),
    @total money output
    AS 
    BEGIN 
    SET NOCOUNT ON; 
    
    INSERT INTO [DB1].[dbo].[BE_AdjustBudgetTbl] 
    ([BE_Adj_AMOUNT],[BE_Adj_APPRV_D],[BE_Adj_COMMENT],[BE_Adj_Initials])  
    VALUES (@amt,@date,@cmmt,@int) 
    
    SELECT @total = SUM(BE_Adj_AMOUNT) 
    FROM [DB1].[dbo].[BE_AdjustBudgetTbl]
    WHERE Year([BE_Adj_APPRV_D]) = year(getdate())
    
    
    
    END 
    

    将输出参数添加到存储过程调用中,方向设置为ParameterDirection.Output

    【讨论】:

    • 我不断收到这个错误:['必须声明标量变量“@output”。']这只能解决部分问题,我需要的是仅汇总当年的总数而不是列中的所有内容?
    • 1.是的,我的错误 - 已更正 2. 我在上面的答案中添加了一个过滤器
    猜你喜欢
    • 1970-01-01
    • 2011-07-17
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多