【发布时间】:2020-09-11 20:44:52
【问题描述】:
我正在使用 VB.Web 应用程序,我正在尝试获取输出中同一列末尾的所有列值的总量。例如,我有一列包含多个价格,并在列的末尾获取这些价格的总和。就我而言,我想对 D.ORIG_PRC 做同样的事情。
有没有办法通过使用这种将值传递给gridview的方法来做到这一点?
或者我最好使用 ASP 控件将值输出到 gridview?
查询
Protected Sub ExecuteButton_Click(sender As Object, e As EventArgs) Handles ExecuteButton.Click
Dim StoreID As Integer
Dim TransID As Integer
Dim RgstID As Integer
Dim dt As DataTable
If Not Integer.TryParse(StoreIDTextbox.Text, StoreID) Then
MsgBox("Invalid input. Please enter both Store ID and Transaction ID.")
Exit Sub
End If
If Not Integer.TryParse(TransactionIDTextbox.Text, TransID) Then
MsgBox("Invalid input. Please enter both Store ID and Transaction ID.")
Exit Sub
End If
SQL.AddParam("@Str_ID", StoreID)
SQL.AddParam("@Tran_ID", TransID)
'Rgst_ID Validation
If RegisterIDTextbox.Text.Length = 0 Then
MsgBox("RgstID has no value")
SQL.AddParam("@Rgst_ID", "")
ElseIf RegisterIDTextbox.Text.Length > 0 Then
MsgBox("RgstID has a value")
RgstID = Integer.Parse(RegisterIDTextbox.Text)
SQL.AddParam("@Rgst_ID", RgstID)
End If
Try
dt = SQL.ExecQuery(" Select H.Emp_ID, H.Cust_ID, H.Rgst_ID, D.TRAN_LN_NUM AS Line#, D.DISC_CD AS Disc_CD, D.AUTH_EMP_ID AS Auth_Emp_ID, CAST(D.ORIG_PRC AS DECIMAL(19,2)) AS Orig_Prc, CAST(D.DISC_AMT AS DECIMAL(19,2)) AS Disc_Amt, D.DISC_PCT AS Disc_Pct, D.GL_ACCT_ID AS GL_Acct_ID
From Transaction_Header H
INNER Join LN_Detail L On (H.Str_ID = L.Str_ID And H.Rgst_ID = L.Rgst_ID And H.Tran_ID = L.Tran_ID)
INNER Join LN_Discount D ON (L.Str_ID = D.Str_ID And L.Rgst_ID = D.Rgst_ID And L.Tran_ID = D.Tran_ID And L.Tran_LN_Num = D.Tran_LN_Num)
WHERE(H.Str_ID = @Str_ID)
And (H.Tran_ID = @Tran_ID)
And ((H.Rgst_ID = @Rgst_ID) Or (@Rgst_ID Is NULL Or @Rgst_ID = ''))")
Catch ex As Exception
MsgBox(ex.Message)
Exit Sub
End Try
GridView1.DataSource = dt
GridView1.DataBind()
TimeLabel.Text = DateAndTime.Now
End Sub
SQL 控制
Private ReadOnly ConStr As String = ""
Private DBCmd As SqlCommand
'Query Parameters
Public Params As New List(Of SqlParameter)
'This generates a blank sqlclient class with the deafult connection string
Public Sub New()
End Sub
'Allow connection string override
Public Sub New(connectionString As String)
ConStr = connectionString
End Sub
'Execute Query Sub
Public Function ExecQuery(query As String) As DataTable
Dim DBDT = New DataTable
Using DBCon As New SqlConnection(ConStr),
DBCmd As New SqlCommand(query, DBCon)
Params.ForEach(Sub(p) DBCmd.Parameters.Add(p))
Params.Clear()
DBCon.Open()
DBDT.Load(DBCmd.ExecuteReader)
End Using
Return DBDT
End Function
'Add Params
Public Sub AddParam(Name As String, Value As Object)
Dim NewParam As New SqlParameter(Name, Value)
Params.Add(NewParam)
End Sub
【问题讨论】:
-
计算数据表行的总和,并将新行添加到数据表,并将总和设置为总和列。
标签: .net sql-server vb.net gridview