2013-05-08 9 views
0

我一直坐在这里与另外五个人一起尝试如何从一列中总计值。我们搜索了谷歌,但没有找到我们找到的代码。使用VB从Access数据库中检索一列工资总和

这里是我的形式:

form

这里是我迄今为止代码:

Public Class frmTotal 
    Dim dt As New DataTable() 
    Dim rowindex As Integer = 0 
    Dim connstr As String = "provider=microsoft.jet.oledb.4.0;" & "data source=valleyfair.mdb" 
    Dim sqlstr As String = "select * from employee" 

    Private Sub btnTotal_Click(sender As System.Object, e As System.EventArgs) Handles btnTotal.Click 

    End Sub 

    Private Sub frmTotal_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
     dt.Clear() 
     Dim dataAdapter As New OleDb.OleDbDataAdapter(sqlstr, connstr) 
     dataAdapter.Fill(dt) 
     dataAdapter.Dispose() 
    End Sub 
End Class 

回答

1

您可以在TSQL或代码总和。这里的TSQL版本:

select *, SUM(MyColumnName) AS TotalMyColumnName 
from employee 

如果你只愿意总和只检索的总和,而不是其他列

select SUM(MyColumnName) AS TotalMyColumnName 
from employee 
+0

txtTotalSalary.Text = “SELECT *,从员工SUM(employeeSalary)” 岂不只能将select *,SUM(employeeSalary)从员工添加到文本框? – user2155190 2013-05-08 23:53:00

+0

您的评论与我对您的问题的回答“如何添加一列薪水”无关。你对结果做什么取决于你 – 2013-05-08 23:53:43

0

我在SQL中的新秀,但是这是一个方式,我把它想象要完成: 1:声明所需的变量。 2:从数据库中提取需要的数据并将其保存在数据库容器中。该代码只能获得列薪水中的值。 (不确定你命名它,但你可以编辑它) 3:使用for循环将所有数字加在一起。

如果您正在使用OLEDB只是改变时,它说的SQL OLEDB和它应该工作一样的

Dim Result As Integer = 0 
Dim salaryDB As New DataTable 
Dim sSQL As String = String.Empty 
Dim conn As New SqlClient.SqlConnection 
Dim cmd As New SqlClient.SqlCommand 
Dim da As New SqlClient.SqlDataAdapter 

Public Sub GetSum() 
    Try 
     conn = New SqlClient.SqlConnection(Constr) 
     conn.Open() 
     cmd.Connection = conn 
     cmd.CommandType = CommandType.Text 
     sSQL = "SELECT salary FROM Employee" 
     cmd.CommandText = sSQL 
     da.SelectCommand = cmd 
     da.Fill(salaryDB) 
     If dtActive.Rows.Count = 0 Then 
      MsgBox("No record found!") 
     End If 
    Catch ex As Exception 
     MsgBox(ErrorToString) 
    Finally 
     conn.Close() 
    End Try 
    For Each Row As DataRow In salaryDB.Rows 
     Result = Result + row(0) 'row is the current row selected and 0 is the column number 
    Next 
End Sub 
相关问题