使用Microsoft acces计算Visual Basic中每个候选人(投票系统)的总票数

时间:2018-12-17 11:15:51

标签: vb.net ms-access visual-studio-2017

所以我为我的最终项目制作了一个选举应用程序,并且我坚持要进行正确的查询以计算先前已由管理员注册的每个候选人的总票数。所以这是我在那部分的编码:

`Using myCommand As New OleDbCommand("SELECT COUNT(StudentId) AS NoVotes 
 FROM 
Student_Voting LEFT JOIN Sign_Up ON Student_Voting.CandidateNumber = 
Sign_Up.CandidateNumber", dbconn)
        myCommand.Parameters.Add("CandidateNumber", OleDbType.Integer).Value 
= CanComboBox.Text
        Using myReader As OleDbDataReader = myCommand.ExecuteReader
            If (myReader.Read() = True) Then
                NovTextBox.Text = (myReader("NoVotes"))

            End If
        End Using
    End Using

` 上面的代码仅显示已投票的学生总数,而不显示每个候选人的特定选民。

NoVotes是一列,用于临时存储每个候选人的总数并在NovTextBox上显示投票。由于候选人是由管理员确定的,因此候选人总数不固定。

我想获取根据另一个表(即Sign_Up表)注册的每个候选人的总选民,并将其显示在NovTextBox上

因此,如果有人可以提供帮助,我将非常感激,当然也为您的任何愚蠢的错误感到抱歉。.im在编程方面确实是新手。.也非常感谢:)

1 个答案:

答案 0 :(得分:0)

鉴于您所发布的内容看起来像您的sql查询正在提供您所要的内容:似乎您是在要求计算每个候选人获得的选票,包括没有获得选票的候选人(左联接),因此该sql带有一些tweeks可能的名称可能就是您正在寻找的名称:

SELECT Student_Voting.CandidateNumber,Count(Sign_Up.CandidateNumber)AS NoVotes 从Student_Voting向左联接Sign_Up ON Student_Voting.CandidateNumber = Sign_Up.CandidateNumber GROUP BY Student_Voting.CandidateNumber;

我使用设计器生成了我的SQL。看起来像:

enter image description here