0

在我的 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)
4

1 回答 1

0

调整您的存储过程以进行计算

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

于 2012-06-26T15:43:36.103 回答